Storage medium having information processing program stored therein, information processing apparatus, and information processing system

ABSTRACT

An information processing apparatus is capable of obtaining operation data according to a tilt of a predetermined object that can be moved by a user. The information processing apparatus calculates tilt information corresponding to the tilt of the object based on the operation data. The information processing apparatus calculates a specified position on a screen of a display device based on the operation data so that the specified position changes according to at least one of a position and the tilt of the object. Selection items are displayed on the screen of the display device. The information processing apparatus switches between sets of the selection items displayed on the screen according to an amount of tilt represented by the tilt information. Moreover, the information processing apparatus selects an item displayed at the specified position from among the selection items to perform an information process according to the selected item.

CROSS REFERENCE TO RELATED APPLICATION

The disclosure of Japanese Patent Application No. 2010-3860, filed Jan.12, 2010, is incorporated herein by reference.

BACKGROUND

1. Field

Example embodiments of the present invention relate to a storage mediumhaving an information processing program stored therein, an informationprocessing apparatus, and an information processing system and, moreparticularly, to a storage medium having an information processingprogram stored therein, an information processing apparatus, and aninformation processing system, with which the user can select aselection item displayed on the screen.

2. Description of the Background Art

In the prior art, there is an information processing system in which theuser can perform an operation of selecting an item from among aplurality of selection items displayed on the screen by using an inputdevice that the user can hold in hand and perform an operation of movingaround the input device itself, as described in Japanese Laid-OpenPatent Publication No. 2007-213144 (Patent Document 1), for example. Inthis information processing system, a game apparatus selects an itemfrom among a plurality of selection items displayed on the screen basedon the position on the screen being pointed by the input device and onan operation on a button provided on the input device (whether thebutton is pressed).

In the information processing system of Patent Document 1, items fromwhich the user can make a selection are all displayed within a singlescreen. Therefore, where there are many selection items, each item isdisplayed to be small, making it difficult to select a selection item.Thus, a system that employs an input method where a position on thescreen is specified by the player moving around an input device (oranother object) has a problem in that it becomes difficult to performthe selection operation when many selection items are displayed within asingle screen.

SUMMARY

Example embodiments of the present invention provide an informationprocessing apparatus that employs an input method where a position onthe screen is specified by the player moving around an input device oranother object, with an input interface that makes it easy to performthe operation of selecting an item from among selection items.

Example embodiments of the present invention employ configurations (1)to (14) below to attain the object mentioned above.

(1)

Example embodiments of the present invention are directed to acomputer-readable storage medium having stored therein an informationprocessing program to be executed by a computer in an informationprocessing apparatus capable of obtaining operation data according to atilt of a predetermined object that can be moved by a user. Theinformation processing program causes the computer to function as a tiltcalculation section, a position calculation section, a display controlsection, a switching section, and a selecting section. The tiltcalculation section calculates tilt information corresponding to thetilt of the object based on the operation data. The position calculationsection calculates a specified position on a screen of a display devicebased on the operation data so that the specified position changesaccording to at least one of a position and the tilt of the object. Thedisplay control section displays selection items on the screen of thedisplay device. The switching section switches between sets of theselection items displayed on the screen according to an amount of tiltrepresented by the tilt information. The selecting section selects anitem displayed at the specified position from among the selection itemsto perform an information process according to the selected item.

The “predetermined object” may be any object that can be moved by theuser, and is a concept that includes an input device as set forth in (4)or (8) below, a marker as set forth in (7) below, or a part of the bodyof the user.

The “operation data according to a tilt of a predetermined object” maybe any data based on which the tilt of the predetermined object can becalculated, and is a concept that includes data that changes accordingto the tilt of the predetermined object, and data that changes accordingto a change of the tilt of the predetermined object.

The “tilt information corresponding to the tilt of the object” may beany information representing a tilt according to the tilt of the object,and it may be information representing the tilt of the object itself orinformation representing the tilt of another object whose tilt changesaccording to the tilt of the object (e.g., an object placed in thevirtual space).

The “selection item” may be an image associated with a particularprocess, or a partial area within an area displayed on the screen. An“image associated with a particular process” includes, for example, anicon image, an image of a game item or a game character, an image of aletter representing a command, an image of a key on a software keyboard,etc. A “partial area within an area displayed on the screen” is, forexample, a partial area or a point in a map area.

To “switch” means to change the screen display so that at least oneselection item that is not displayed on the screen before the switchingis displayed on the screen after the switching. Therefore, there may beselection items that are displayed both before and after the switching.To “switch according to an amount of tilt” means that the display image(display range) including selection items transitions discontinuously inresponse to the continuous change of the amount of tilt. Note howeverthat the transition from the screen before the switching to the screenafter the switching does not have to be made instantaneously, but thetransition may take some time. For example, a transitional visual effectmay be used upon switching, in which the display range transitions(scrolls) gradually.

The “selecting section” is a section for selecting an item displayed atthe specified position, but is not limited to a section that alwaysselects a selection item when the specified position coincides with theselection item on the screen. For example, the selecting section may bea section that selects an item displayed at the specified position whena predetermined condition is met (e.g., when a predetermined operationis performed by the user).

With the configuration (1) above, sets of selection items are switchedfrom one to another according to the amount of tilt, and it is thereforepossible to reduce the number of selection items as compared with a casewhere all the selection items are displayed at once on the screen. Thus,the operation of selecting a selection item can be made easier. Sincethe user can perform, through an operation of moving a single object, anoperation of switching between sets of selection items and an operationof selecting a selection item, the user can easily perform two differentoperations with one object.

(2)

The position calculation section may calculate the specified positionaccording to a tilt of the object about a first axis and a tilt thereofabout a second axis perpendicular to the first axis, or according to amovement in a direction of the first axis and a movement in a directionof the second axis. In this case, the tilt calculation sectioncalculates the tilt information according to a tilt of the object abouta third axis perpendicular to the first axis and the second axis.

With the configuration (2) above, the operation of determining thespecified position and the operation of determining the tilt informationare independent of each other and do not influence each other.Therefore, the user can easily perform the two different operations.

(3)

Where a first group of selection items is displayed on the screen, theswitching section may switch the selection items displayed on the screenfrom the first group of selection items to a second group of selectionitems on a condition that the amount of tilt goes above a firstthreshold value. Where the second group of selection items is displayedon the screen, the switching section may switch the selection itemsdisplayed on the screen from the second group of selection items to thefirst group of selection items on a condition that the amount of tiltgoes below a second threshold value being smaller than the firstthreshold value.

The “first group of selection items” refers to one or more selectionitems displayed at once on the screen, and the “second group ofselection items” refers to one or more selection items displayed at onceon the screen that include selection items different from the firstgroup of selection items.

With the configuration (3) above, switching from the first group to thesecond group is performed in response to the amount of tilt going abovethe first threshold value, and the display will not return from thesecond group back to the first group even if the amount of tiltthereafter goes below the first threshold value (unless it goes belowthe second threshold value). Therefore, even if the amount of tiltchanges back and forth around the first threshold value, it is possibleto prevent quick switching back and forth, thus improving thecontrollability of the switching operation.

(4)

The object may be an input device including detection means capable ofdetecting a tilt of itself or information according to a change of thetilt. In this case, the tilt calculation section calculates the tiltinformation by using data based on a detection result of the detectionmeans as the operation data. The position calculation section calculatesthe specified position by using data based on a detection result of thedetection means as the operation data.

In addition to a gyroscope, an acceleration sensor and a camera used inthe embodiment below, the “detection means” may be any means as long asit is possible to obtain a detection result that changes according tothe tilt of the input device or the change of the tilt. While the inputdevice includes three detection means in the embodiment below, it isonly required that the input device includes at least one detectionmeans.

The “data based on a detection result” may be the detection resultitself, or may be data obtained by processing the detection result.

With the configuration (4) above, the input device is provided withdetection means, and the information processing apparatus can thereforeperform the operation of calculating the tilt information and thespecified position by using the operation data from the input device soas to select a selection item.

(5)

The detection means may be a gyroscope for detecting an angular velocityof the object. In this case, the tilt calculation section calculates thetilt information based on the angular velocity detected by thegyroscope. The position calculation section calculates a position of anintersection between a line segment extended from a predeterminedposition in a predetermined space in a direction of a vectorcorresponding to a tilt represented by the tilt information and apredetermined plane in the predetermined space, so as to calculate, asthe specified position, a position on the screen corresponding to theposition of the intersection.

The “predetermined space” is a virtual three-dimensional space, and the“predetermined plane” is a plane placed in the three-dimensional space.The “vector corresponding to a tilt represented by the tilt information”refers to a vector whose direction changes according to the tiltrepresented by the tilt information. That is, where the tilt informationis expressed by a vector, the vector may be the vector itselfrepresented by the tilt information, and where the tilt information isexpressed by an angle or a matrix, the vector may be a vector thatrepresents the same tilt as the tilt represented by the angle or thematrix.

With the configuration (5) above, the tilt and the specified position ofthe input device can be easily calculated by using a gyroscope. With theconfiguration (5) above, since a detection result of a gyroscope isused, it is possible to calculate the tilt and the specified position nomatter which direction the input device is pointing. Therefore, theusability of the input device is not restricted, and the user can usethe input device while pointing it in any direction.

(6)

The detection means may be image capturing means capable of capturing animage of a predetermined subject. In this case, the tilt calculationsection calculates the tilt information based on a tilt of the subjectin the captured image captured by the image capturing means. Theposition calculation section calculates the specified position based ona position of the subject in the captured image captured by the imagecapturing means.

In addition to the marker section 6 used in the embodiment below, the“predetermined subject” may be any object as long as the image thereofcan be captured by the image capturing means.

With the configuration (6) above, it is possible to easily calculate thetilt and the specified position of the input device by using the imagecapturing means. With the configuration (6) above, a captured image isused, and it is therefore possible to accurately calculate the tilt andthe specified position.

(7)

The object may be a part of a body of the user or a marker that can beused by the user. In this case, the information processing apparatusobtains, as the operation data, data based on an image-capturing resultfrom image capturing means capturing an image of the object.

With the configuration (7) above, it is possible to easily calculate thetilt and the specified position of the object by using the imagecapturing means. With the configuration (7) above, a captured image isused, and it is therefore possible to accurately calculate the tilt andthe specified position.

(8)

The object may be an input device including detection means capable ofdetecting a tilt of itself or information according to a change of thetilt. In this case, the information processing apparatus obtains, as theoperation data, data based on an image-capturing result from imagecapturing means capturing an image of the object, and obtains, as theoperation data, data based on a detection result of the detection meansfrom the input device. The tilt calculation section calculates the tiltinformation based on the data based on the detection result. Theposition calculation section calculates the specified position based onthe data based on the image-capturing result.

With the configuration (8) above, it is possible to easily calculate thetilt of the object by using the detection result obtained by thedetection means. Moreover, it is possible to easily and accuratelycalculate the specified position specified by the object by using theimage-capturing result from the image capturing means.

(9)

The display control section may display, on the screen, a part of apredetermined plane on which sets of the selection items are placedalong an arc. In this case, the switching section switches between setsof the selection items displayed on the screen by rotating thepredetermined plane.

To “rotate the predetermined plane” may refer to any operation as longas the predetermined plane is rotated relative to the reference (theviewpoint of the virtual camera, etc.) for determining the displayrange. That is, where a display image is produced by using a virtualcamera, the switching section may rotate the predetermined plane or maymove the virtual camera.

(10)

The selection items may be images displayed on the screen, each imagebeing associated with a process. In this case, the selecting sectionperforms a process associated with the image displayed at the specifiedposition.

With the configuration (10) above, example embodiments of the presentinvention are also applicable to a case where an image of an icon, orthe like, is displayed as a selection item.

(11)

The selection items may each be an image representing a game item, agame character, or a game command. In this case, the selecting sectionperforms a game process according to an item, a game character or a gamecommand represented by the image displayed at the specified position.

With the configuration (11) above, example embodiments of the presentinvention are also applicable to a case where a game item or a gamecharacter is displayed as a selection item, or a case where a gamecommand is displayed as a selection item.

(12)

The selection items may each be an image representing a letter or astring of letters. In this case, the selecting section performs aprocess of outputting a letter represented by the image displayed at thespecified position.

With the configuration (12) above, example embodiments of the presentinvention are also applicable to a case where an image representing aletter (or a string of letters) is displayed as a selection item, e.g.,a software keyboard.

(13)

The switching section switches between letter types of the letter or thestring of letters represented by the image displayed on the screen.

To “switch between letter types” means a concept including the switchingcapital letters and small letters of alphabet letters, the switchingbetween hiragana (Japanese cursive alphabet) and katakana (Japanesesquare alphabet), the switching between fonts of letters, etc.

With the configuration (13) above, the user can switch between lettertypes by controlling the tilt of the object, and can select a letter bycontrolling the position and/or direction of the object. Thus, it ispossible to provide a letter input system, with which the selection of aletter and the switching between letter types can be done easily.

(14)

The selection items may each be a partial area in an area displayed onthe screen, each partial area being associated with a process. In thiscase, the selecting section performs a process associated with a partialarea corresponding to the specified position.

The “area displayed on the screen” is a concept including an area of amap (or a game map). The “partial area” is a concept including a pointor a region in a map.

With the configuration (14) above, example embodiments of the presentinvention are also applicable to a case where an image of a map isdisplayed, for example, and the user selects a point or a region in themap.

Example embodiments of the present invention may also be embodied in theform of an information processing apparatus having similar functions tothose of the various sections implemented by the information processingprogram. In this case, each of the various sections may be implementedby a computer, such as a CPU, executing software (program), or by adedicated circuit. Example embodiments of the present invention may bealso embodied in the form of an information processing system includingone or more information processing apparatuses having the varioussections. In this case, the one or more information processingapparatuses may communicate with each other directly via a wired orwireless connection, or may communicate with each other via a network.Example embodiments of the present invention may also be embodied in theform of a selection method carried out by the various sections.

According to example embodiments of the present invention, sets ofselection items are switched from one to another according to the amountof tilt, and it is therefore possible to reduce the number of selectionitems displayed at once on the screen, thereby making it easier toperform the operation of selecting a selection item.

These and other features, aspects and advantages of example embodimentsof the present invention will become more apparent from the followingdetailed description of the example embodiments of the present inventionwhen taken in conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an external view of a game system;

FIG. 2 is a functional block diagram of a game apparatus;

FIG. 3 is a perspective view illustrating an external configuration ofan input device;

FIG. 4 is a perspective view illustrating an external configuration of acontroller;

FIG. 5 is a diagram illustrating an internal structure of thecontroller;

FIG. 6 is another diagram illustrating an internal structure of thecontroller;

FIG. 7 is a block diagram illustrating a configuration of the inputdevice;

FIG. 8 is a diagram showing an example of images displayed on the screenof a television by a process of the game apparatus;

FIG. 9 is a table showing the relationship between the tilt of the inputdevice and selection items displayed;

FIG. 10 is a diagram illustrating important data stored in a main memoryof the game apparatus;

FIG. 11 is a main flow chart showing a flow of a letter input processperformed by the game apparatus;

FIG. 12 is a flow chart showing a flow of a display item determinationprocess (step S3) shown in FIG. 11;

FIG. 13 is a diagram showing an example of positions of markercoordinates in a captured image;

FIG. 14 is a diagram showing the tilt angle θ of the input device andthreshold values thereof in a case where a second page is displayed;

FIG. 15 is a diagram showing the tilt angle θ of the input device andthreshold values thereof in a case where a third page is displayed;

FIG. 16 is a diagram where the input device and a predetermined planeare virtually placed in a predetermined virtual space;

FIG. 17 is a diagram showing the virtual space shown in FIG. 16 asviewed from the Y′-axis positive direction side to the negativedirection side;

FIG. 18 is a diagram showing an example of a method for switchingbetween sets of selection items;

FIG. 19 is a block diagram showing a configuration of a game system of afirst variation; and

FIG. 20 is a block diagram showing a configuration of a game system of asecond variation.

DESCRIPTION OF THE EXAMPLE EMBODIMENTS

[General Configuration of Game System]

With reference to FIG. 1, a game system 1 including a game apparatustypifying a coordinate calculation apparatus according to an embodimentof the present invention will be described. FIG. 1 is an external viewof the game system 1. In the following description, a home-console typegame apparatus is taken as an example for describing a game apparatusand an information processing program of the present embodiment. Asshown in FIG. 1, the game system 1 includes a television receiver(hereinafter, simply referred to as a “television”) 2, a game apparatus3, an optical disc 4, an input device 8, and a marker section 6. In thissystem, the game apparatus 3 performs a game process based on a gameoperation using the input device 8.

In the game apparatus 3, the optical disc 4 typifying an informationstorage medium used for the game apparatus 3 in a replaceable manner isdetachably inserted. An information processing program (typically a gameprogram) executed by the game apparatus 3 is stored in the optical disc4. The game apparatus 3 has, on the front surface thereof, an insertionopening for the optical disc 4. The game apparatus 3 reads and executesthe information processing program stored in the optical disc 4 which isinserted through the insertion opening, so as to perform the gameprocess.

The game apparatus 3 is connected to the television 2, which is anexemplary display device, through a connecting cord. A game imageobtained as a result of the game process performed by the game apparatus3 is displayed on the television 2. Further, the marker section 6 isprovided on the periphery (in FIG. 1, on a portion above a screen) of ascreen of the television 2. The marker section 6 includes two markers 6Rand 6L on both ends thereof. Specifically, the marker 6R (as well as themarker 6L) includes one or more infrared LEDs, and emits an infraredlight forward from the television 2. The marker section 6 is connectedto the game apparatus 3, and the game apparatus 3 is able to controleach infrared LED of the marker section 6 so as to light up eachinfrared LED.

The input device 8 gives the game apparatus 3 operation datarepresenting the content of an operation performed on the input deviceitself. In the present embodiment, the input device 8 includes thecontroller 5 and the gyroscope unit 7. As will be described in detaillater, the input device 8 has a configuration in which the gyroscopeunit 7 is detachably connected to the controller 5. The controller 5 andthe game apparatus 3 are connected to each other by wirelesscommunication. In the present embodiment, the wireless communicationbetween the controller 5 and the game apparatus 3 is made using, forexample, Bluetooth (Registered Trademark) technology. In anotherembodiment, the connection between the controller 5 and the gameapparatus 3 may be a wired connection.

[Internal Configuration of Game Apparatus 3]

Next, an internal configuration of the game apparatus 3 will bedescribed with reference to FIG. 2. FIG. 2 is a block diagramillustrating a configuration of the game apparatus 3. The game apparatus3 includes a CPU 10, a system LSI 11, an external main memory 12, aROM/RTC 13, a disc drive 14, an AV-IC 15, and the like.

The CPU 10, functioning as a game processor, performs game processes byexecuting the information processing program stored in the optical disc4. The CPU 10 is connected to the system LSI 11. To the system LSI 11,the external main memory 12, the ROM/RTC 13, the disc drive 14, and theAV-IC 15 as well as the CPU 10 are connected. The system LSI 11 performsprocesses for controlling data transmission between the respectivecomponents connected thereto, generating an image to be displayed,acquiring data from an external device, and the like. The internalconfiguration of the system LSI will be described below. The externalmain memory 12 of a volatile type stores a program such as aninformation processing program read from the optical disc 4 and aninformation processing program read from a flash memory 17, and variousdata, and an external main memory 12 is used as a work area and a bufferarea for the CPU 10. The ROM/RTC 13 includes a ROM (a so-called bootROM) incorporating a boot program for the game apparatus 3, and a clockcircuit (RTC: Real Time Clock) for counting time. The disc drive 14reads program data, texture data, and the like from the optical disc 4,and writes the read data into an internal main memory 11 e to bedescribed below or the external main memory 12.

Further, the system LSI 11 includes an input/output processor (I/Oprocessor) 11 a, a GPU (Graphics Processor Unit) 11 b, a DSP (DigitalSignal Processor) 11 c, a VRAM 11 d, and the internal main memory 11 e.These components 11 a, 11 b, 11 c, 11 d, and 11 e are connected witheach other through an internal bus, which is not shown.

The GPU 11 b, acting as a part of rendering means, generates an image inaccordance with a graphics command (rendering command) from the CPU 10.The VRAM 11 d stores data (data such as polygon data and texture data)necessary for the GPU 11 b to execute the graphics command. When animage is generated, the GPU 11 b generates image data using data storedin the VRAM 11 d.

The DSP 11 c, functioning as an audio processor, generates audio datausing sound data and sound waveform (tone quality) data stored in aninternal main memory 11 e or the external main memory 12.

The image data and the audio data generated as described above are readby the AV-IC 15. The AV-IC 15 outputs the read image data to thetelevision 2 through an AV connector 16, and outputs the read audio datato a speaker 2 a incorporated in the television 2. Thus, an image isdisplayed on the television 2, and a sound is outputted from the speaker2 a.

The input/output processor 11 a performs data transmission to and datareception from the components connected thereto, and download of datafrom an external device. The input/output processor 11 a is connected tothe flash memory 17, a wireless communication module 18, a wirelesscontroller module 19, an extension connector 20, and a memory cardconnector 21. The wireless communication module 18 is connected to anantenna 22, and the wireless controller module 19 is connected to anantenna 23.

The input/output processor 11 a is connected to a network via thewireless communication module 18 and the antenna 22, so as tocommunicate with another game apparatus and various servers connected tothe network. The input/output processor 11 a regularly accesses theflash memory 17, and detects the presence or absence of any data whichneeds to be transmitted to the network, and when detected, transmits thedata to the network through the wireless communication module 18 and theantenna 22. Further, the input/output processor 11 a receives datatransmitted from another game apparatus, and/or downloads data from adownload server, through the network, the antenna 22, and the wirelesscommunication module 18, and the received data and/or the downloadeddata are stored to the flash memory 17. The CPU 10 executes aninformation processing program so as to read data stored in the flashmemory 17 and use the data on the information processing program. Theflash memory 17 may store saved data (game result data orintermediate-stage data) of a game played using the game apparatus 3 inaddition to data transmitted from the game apparatus 3 to another gameapparatus or the various servers, and data received by the gameapparatus 3 from another game apparatus or the various servers.

The input/output processor 11 a receives operation data transmitted fromthe controller 5 through the antenna 23 and the wireless controllermodule 19, and (temporarily) stores the received operation data to abuffer area of the internal main memory 11 e or the external main memory12.

Further, the input/output processor 11 a is connected to the extensionconnector 20 and the memory card connector 21. The extension connector20 is a connector for an interface, such as USB or SCSI, and allowscommunication with the network by connecting thereto a medium such as anexternal storage medium, connecting thereto another peripheral devicesuch as a controller, and/or connecting thereto a wired communicationconnector, without using the wireless communication module 18. Thememory card connector 21 is a connector for connecting thereto anexternal storage medium such as a memory card. For example, theinput/output processor 11 a accesses an external storage medium throughthe extension connector 20 or the memory card connector 21 to store datain the external storage medium or read data from the external storagemedium.

The game apparatus 3 includes a power button 24, a reset button 25, andan eject button 26. The power button 24 and the reset button 25 areconnected to the system LSI 11. When the power button 24 is on, power issupplied to the respective components of the game apparatus 3 through anAC adaptor not shown. When the reset button 25 is pressed, the systemLSI 11 reboots a boot program of the game apparatus 3. The eject button26 is connected to the disc drive 14. When the eject button 26 ispressed, the optical disc 4 is ejected from the disc drive 14.

[Configuration of Input Device 8]

Next, with reference to FIGS. 3 to 6, the input device 8 will bedescribed. FIG. 3 is a perspective view illustrating an externalconfiguration of the input device 8. FIG. 4 is a perspective viewillustrating an external configuration of the controller 5. Theperspective view of FIG. 3 shows the controller 5 as viewed from the toprear side thereof, and the perspective view of FIG. 4 shows thecontroller 5 as viewed from the bottom front side thereof.

As shown in FIG. 3 and FIG. 4, the controller 5 has a housing 31 formedby, for example, plastic molding. The housing 31 has a generallyparallelepiped shape extending in a longitudinal direction from front torear (Z-axis direction shown in FIG. 3), and as a whole is sized to beheld by one hand of an adult or even a child. A player can perform gameoperations by pressing buttons provided on the controller 5, and movingthe controller 5 to change the position and the orientation (tilt)thereof.

The housing 31 has a plurality of operation buttons. As shown in FIG. 3,on the top surface of the housing 31, a cross button 32 a, a firstbutton 32 b, a second button 32 c, an A button 32 d, a minus button 32e, a home button 32 f, a plus button 32 g, and a power button 32 h areprovided. In example embodiments of the present invention, the topsurface of the housing 31 on which the buttons 32 a to 32 h are providedmay be referred to as a “button surface”. On the other hand, as shown inFIG. 4, a recessed portion is formed on the bottom surface of thehousing 31, and a B button 32 i is provided on a rear slope surface ofthe recessed portion. The operation buttons 32 a to 32 i are assigned,as necessary, their respective functions in accordance with theinformation processing program executed by the game apparatus 3.Further, the power button 32 h is intended to remotely turn ON/OFF thegame apparatus 3. The home button 32 f and the power button 32 h eachhave the top surface thereof recessed below the top surface of thehousing 31. Therefore, the home button 32 f and the power button 32 hare prevented from being inadvertently pressed by the player.

On the rear surface of the housing 31, a connector 33 is provided. Theconnector 33 is used for connecting the controller 5 to another device(e.g., a gyroscope unit 7 or another controller). Both sides of theconnector 33 on the rear surface of the housing 31 have a fastening hole33 a for preventing easy inadvertent disengagement of another device asdescribed above.

In the rear-side portion of the top surface of the housing 31, aplurality (four in FIG. 3) of LEDs 34 a, 34 b, 34 c, and 34 d areprovided. The controller 5 is assigned a controller type (number) so asto be distinguishable from another main controller. The LEDs 34 a, 34 b,34 c, and 34 d are each used for informing the player of the controllertype which is currently being set for the controller 5 being used, andfor informing the player of remaining battery power of the controller 5,for example. Specifically, when a game operation is performed using thecontroller 5, one of the plurality of LEDs 34 a, 34 b, 34 c, and 34 dcorresponding to the controller type is lit up.

The controller 5 has an image capturing/processing section 35 (FIG. 6),and a light incident surface 35 a through which a light is incident onthe image capturing/processing section 35 is provided on the frontsurface of the housing 31, as shown in FIG. 4. The light incidentsurface 35 a is made of a material transmitting therethrough at leastinfrared light outputted from the markers 6R and 6L.

On the top surface of the housing 31, sound holes 31 a for externallyoutputting a sound from a speaker 49 (shown in FIG. 5) incorporated inthe controller 5 is provided between the first button 32 b and the homebutton 32 f.

Next, with reference to FIGS. 5 and 6, an internal structure of thecontroller 5 will be described. FIG. 5 and FIG. 6 are diagramsillustrating the internal structure of the controller 5. FIG. 5 is aperspective view illustrating a state where an upper casing (a part ofthe housing 31) of the controller 5 is removed. FIG. 6 is a perspectiveview illustrating a state where a lower casing (a part of the housing31) of the controller 5 is removed. The perspective view of FIG. 6 showsa substrate 30 of FIG. 5 as viewed from the reverse side.

As shown in FIG. 5, the substrate 30 is fixed inside the housing 31, andon a top main surface of the substrate 30, the operation buttons 32 a to32 h, the LEDs 34 a, 34 b, 34 c, and 34 d, an acceleration sensor 37, anantenna 45, the speaker 49, and the like are provided. These elementsare connected to a microcomputer 42 (see FIG. 6) via lines (not shown)formed on the substrate 30 and the like. In the present embodiment, anacceleration sensor 37 is provided on a position offset from the centerof the controller 5 with respect to the X-axis direction. Thus,calculation of the movement of the controller 5 being rotated around theZ-axis may be facilitated. Further, the acceleration sensor 37 isprovided anterior to the center of the controller 5 with respect to thelongitudinal direction (Z-axis direction). Further, a wireless module 44(FIG. 6) and the antenna 45 allow the controller 5 to act as a wirelesscontroller.

On the other hand, as shown in FIG. 6, at a front edge of a bottom mainsurface of the substrate 30, the image capturing/processing section 35is provided. The image capturing/processing section 35 includes aninfrared filter 38, a lens 39, an image capturing element 40 and animage processing circuit 41 located in order, respectively, from thefront of the controller 5. These components 38 to 41 are attached on thebottom main surface of the substrate 30.

On the bottom main surface of the substrate 30, the microcomputer 42 anda vibrator 48 are provided. The vibrator 48 is, for example, a vibrationmotor or a solenoid, and is connected to the microcomputer 42 via linesformed on the substrate 30 or the like. The controller 5 is vibrated byactuation of the vibrator 48 based on a command from the microcomputer42. Therefore, the vibration is conveyed to the player's hand holdingthe controller 5, and thus a so-called vibration-feedback game isrealized. In the present embodiment, the vibrator 48 is disposedslightly toward the front of the housing 31. That is, the vibrator 48 ispositioned offset from the center toward the end of the controller 5,and therefore the vibration of the vibrator 48 can lead to enhancementof the vibration of the entire controllers. Further, the connector 33 isprovided at the rear edge of the bottom main surface of the substrate30. In addition to the components shown in FIGS. 5 and 6, the controller5 includes a quartz oscillator for generating a reference clock of themicrocomputer 42, an amplifier for outputting a sound signal to thespeaker 49, and the like.

The gyroscope unit 7 includes gyroscopes for detecting angularvelocities about three axes (gyroscopes 55 and 56 shown in FIG. 7). Thegyroscope unit 7 is detachably attached to the connector 33 of thecontroller 5. A plug (a plug 53 shown in FIG. 7) that can be connectedto the connector 33 is provided at the front end of the gyroscope unit 7(the end portion on the Z-axis positive direction side shown in FIG. 3).Moreover, hooks (not shown) are provided on both sides of the plug 53.In a state where the gyroscope unit 7 is attached to the controller 5,the plug 53 is connected to the connector 33 with the hooks beingengaged with fastening holes 33 a in the controller 5. Thus, thecontroller 5 and the gyroscope unit 7 are firmly secured to each other.The gyroscope unit 7 has a button 51 on a side surface thereof (thesurface in the X-axis direction shown in FIG. 3). The button 51 isconfigured so that the engagement of the hooks with the fastening holes33 a can be released by pressing the button 51. Thus, the gyroscope unit7 can be detached from the controller 5 by pulling the plug 53 off ofthe connector 33 while holding down the button 51.

A connector having the same shape as the connector 33 is provided at therear end of the gyroscope unit 7. Therefore, another unit that can beattached to the controller 5 (the connector 33 thereof) can also beattached to the connector of the gyroscope unit 7. Note that in FIG. 3,a cover 52 is detachably attached to this connector.

Note that the shape of the controller 5 and the gyroscope unit 7, theshape of each operation button, the number and the positions ofacceleration sensors and vibrators, and so on, shown in FIGS. 3 to 6 aremerely illustrative, and the present invention can be realized withother shapes, numbers, and positions. Further, although in the presentembodiment the imaging direction of the image pickup means is the Z-axispositive direction, the imaging direction may be any direction. That is,the imagining information calculation section 35 (the light incidentsurface 35 a through which a light is incident on the imagecapturing/processing section 35) of the controller 5 may not necessarilybe provided on the front surface of the housing 31, but may be providedon any other surface on which a light can be received from the outsideof the housing 31.

FIG. 7 is a block diagram illustrating a configuration of the inputdevice 8 (the controller 5 and the gyroscope unit 7). The controller 5includes an operation section 32 (the operation buttons 32 a to 32 i),the connector 33, the image capturing/processing section 35, acommunication section 36, and the acceleration sensor 37. The controller5 transmits, as operation data, data representing the content of anoperation performed on the controller itself, to the game apparatus 3.

The operation section 32 includes the operation buttons 32 a to 32 idescribed above, and outputs, to the microcomputer 42 of thecommunication section 36, operation button data indicating an inputstate (that is, whether or not each operation button 32 a to 32 i ispressed) of each operation button 32 a to 32 i.

The image capturing/processing section 35 is a system for analyzingimage data taken by the image pickup means and calculating, for example,the centroid and the size of an area having a high brightness in theimage data. The image capturing/processing section 35 has a maximumsampling period of, for example, about 200 frames/sec., and thereforecan trace and analyze even a relatively fast motion of the controller 5.

The image capturing/processing section 35 includes the infrared filter38, the lens 39, an image capturing element 40 and the image processingcircuit 41. The infrared filter 38 transmits therethrough only infraredlight included in the light incident on the front surface of thecontroller 5. The lens 39 collects the infrared light transmittedthrough the infrared filter 38 so as to be incident on the imagecapturing element 40. The image capturing element 40 is a solid-stateimaging device such as, for example, a CMOS sensor or a CCD sensor,which receives the infrared light collected by the lens 39, and outputsan image signal. The markers 6R and 6L of the marker section 6 providednear the display screen of the television 2 each include an infrared LEDfor outputting an infrared light forward from the television 2.Therefore, the infrared filter 38 enables the image capturing element 40to receive only the infrared light transmitted through the infraredfilter 38 and generate image data, so that an image of each of themarkers 6R and 6L can be taken with enhanced accuracy. Hereinafter, theimage taken by the image capturing element 40 is referred to as acaptured image. The image data generated by the image capturing element40 is processed by the image processing circuit 41. The image processingcircuit 41 calculates, in the captured image, the positions of subjectsto be imaged (the marker 6R and the marker 6L). The image processingcircuit 41 outputs coordinates of the calculated positions, to themicrocomputer 42 of the communication section 36. The data representingthe coordinates is transmitted as operation data to the game apparatus 3by the microcomputer 42. Hereinafter, the coordinates are referred to as“marker coordinates”. The marker coordinates change depending on theorientation (tilt angle) and/or the position of the controller 5 itself,and therefore the game apparatus 3 is allowed to calculate theorientation and the position of the controller 5 using the markercoordinates.

In another embodiment, the controller 5 may not necessarily include theimage processing circuit 41, and the controller 5 may transmit thecaptured image as it is to the game apparatus 3. At this time, the gameapparatus 3 may have a circuit or a program, having the same function asthe image processing circuit 41, for calculating the marker coordinates.

The acceleration sensor 37 detects accelerations (including agravitational acceleration) of the controller 5, that is, force(including gravity) applied to the controller 5. The acceleration sensor37 detects a value of an acceleration (linear acceleration) applied to adetection section of the acceleration sensor 37 in the straight linedirection along the sensing axis direction, among all accelerationsapplied to a detection section of the acceleration sensor 37. Forexample, a multiaxial acceleration sensor having two or more axesdetects an acceleration of a component for each axis, as theacceleration applied to the detection section of the accelerationsensor. For example, the three-axis or two-axis acceleration sensor maybe of the type available from Analog Devices, Inc. or STMicroelectronicsN.V. The acceleration sensor 37 is, for example, an electrostaticcapacitance type acceleration sensor. However, another type ofacceleration sensor may be used.

In the present embodiment, the acceleration sensor 37 detects a linearacceleration in each of three axis directions, i.e., the up/downdirection (Y-axis direction shown in FIG. 3), the left/right direction(the X-axis direction shown in FIG. 3), and the forward/backwarddirection (the Z-axis direction shown in FIG. 3), relative to thecontroller 5. The acceleration sensor 37 detects an acceleration in thestraight line direction along each axis, and an output from theacceleration sensor 37 represents a value of the linear acceleration foreach of the three axes. In other words, the detected acceleration isrepresented as a three-dimensional vector (ax,ay,az) in anXYZ-coordinate system (controller coordinate system) defined relative tothe input device 8 (controller 5). Hereinafter, a vector representingcomponents of the acceleration values detected for the three axes,respectively, by the acceleration sensor 37 is referred to as anacceleration vector.

Data (acceleration data) representing the acceleration detected by theacceleration sensor 37 is outputted to the communication section 36. Theacceleration detected by the acceleration sensor 37 changes depending onthe orientation (tilt angle) and the movement of the controller 5itself, and therefore the game apparatus 3 is allowed to calculate theorientation and the movement of the controller 5 using the obtainedacceleration data. In the present embodiment, the game apparatus 3determines the orientation, the tilt angle, etc., of the controller 5based on the obtained acceleration data.

When a computer such as a processor (for example, the CPU 10) of thegame apparatus 3 or a processor (for example, the microcomputer 42) ofthe controller 5 processes an acceleration signal outputted from theacceleration sensor 37, additional information relating to thecontroller 5 can be inferred or calculated (determined), as one skilledin the art will readily understand from the description herein. Forexample, in the case where the computer performs processing on thepremise that the controller 5 including the acceleration sensor 37 is instatic state (that is, in the case where processing is performed on thepremise that the acceleration to be detected by the acceleration sensorincludes only the gravitational acceleration), when the controller 5 isactually in static state, it is possible to determine whether or not, orhow much the controller 5 tilts relative to the direction of gravity,based on the acceleration having been detected. Specifically, when thestate where the detection axis of the acceleration sensor 37 facesvertically downward is set as a reference, whether or not the controller5 tilts relative to the reference can be determined based on whether ornot 1 G (gravitational acceleration) is applied to the detection axis,and the degree to which the controller 5 tilts relative to the referencecan be determined based on the magnitude of the gravitationalacceleration. Further, the multiaxial acceleration sensor 37 processesthe acceleration signals having been detected for the respective axes soas to more specifically determine the degree to which the controller 5tilts relative to the direction of gravity. In this case, the processormay calculate, based on the output from the acceleration sensor 37, theangle at which the controller 5 tilts, or the direction in which thecontroller 5 tilts without calculating the tilt angle. Thus, theacceleration sensor 37 is used in combination with the processor, makingit possible to determine the tilt angle or the orientation of thecontroller 5.

On the other hand, when it is premised that the controller 5 is indynamic state (where the controller 5 is being moved), the accelerationsensor 37 detects the acceleration based on the movement of thecontroller 5, in addition to the gravitational acceleration. Therefore,when the gravitational acceleration component is eliminated from thedetected acceleration through a predetermined process, it is possible todetermine the direction in which the controller 5 moves. Even when it ispremised that the controller 5 is in dynamic state, the accelerationcomponent based on the movement of the acceleration sensor is eliminatedfrom the detected acceleration through a predetermined process, wherebyit is possible to determine the tilt of the controller 5 relative to thedirection of gravity. In another embodiment, the acceleration sensor 37may include an embedded processor or another type of dedicated processorfor performing any desired processing on an acceleration signal detectedby the acceleration detection means incorporated therein beforeoutputting to the microcomputer 42. For example, when the accelerationsensor 37 is intended to detect static acceleration (for example,gravitational acceleration), the embedded or dedicated processor couldconvert the acceleration signal to a corresponding tilt angle (oranother preferable parameter).

The communication section 36 includes the microcomputer 42, a memory 43,the wireless module 44 and the antenna 45. The microcomputer 42 controlsthe wireless module 44 for wirelessly transmitting, to the gameapparatus 3, data acquired by the microcomputer 42 while using thememory 43 as a storage area in the process. Further, the microcomputer42 is connected to the connector 33. The data transmitted from thegyroscope unit 7 is inputted to the microcomputer 42 via the connector33. Hereinafter, the configuration of the gyroscope unit 7 will bedescribed.

The gyroscope unit 7 includes the plug 53, a microcomputer 54, the2-axis gyroscope 55, and the 1-axis gyroscope 56. As described above,the gyroscope unit 7 detects the angular velocities about three axes(the X, Y and Z axes in the present embodiment), and transmits data(angular velocity data) representing the detected angular velocities tothe controller 5.

The 2-axis gyroscope 55 detects the angular velocity about the X axisand the angular velocity about the Z axis (per unit time). The 1-axisgyroscope 56 detects the angular velocity about the Y axis (per unittime). Note that the rotation directions about the X, Y and Z axes areherein referred to as the pitch direction, the yaw direction and theroll direction, respectively, with respect to the image-capturingdirection of the controller 5 (the Z-axis positive direction). That is,the 2-axis gyroscope 55 detects the angular velocity about the pitchdirection (the rotation direction about the X axis) and the angularvelocity about the roll direction (the rotation direction about the Zaxis), and the 1-axis gyroscope 56 detects the angular velocity aboutthe yaw direction (the rotation direction about the Y axis).

Note that while the 2-axis gyroscope 55 and the 1-axis gyroscope 56 areused for detecting angular velocities about three axes in the presentembodiment, the number and combination of gyroscopes used may be anynumber and combination in other embodiments as long as angularvelocities about three axes can be detected.

Data representing the angular velocities detected by the gyroscopes 55and 56 are outputted to the microcomputer 54. Therefore, themicrocomputer 54 receives data representing the angular velocities aboutthree axes of the X, Y and Z axes. The microcomputer 54 transmits thedata representing the angular velocities about three axes as angularvelocity data to the controller 5 via the plug 53. Note that thetransmission from the microcomputer 54 to the controller 5 issequentially performed at a predetermined time interval. Since the gameprocess is generally performed at a cycle of 1/60 sec (corresponding toone frame time), the transmission is preferably performed at a cycle ofa shorter time period.

Back to the description of the controller 5, data outputted from theoperation section 32, the image capturing/processing section 35, and theacceleration sensor 37 to the microcomputer 42, and data transmittedfrom the gyroscope unit 7 to the microcomputer 42, are temporarilystored to the memory 43. The data are transmitted as the operation datato the game apparatus 3. At the time of the transmission to the wirelesscontroller module 19 of the game apparatus 3, the microcomputer 42outputs the operation data stored in the memory 43 to the wirelessmodule 44. The wireless module 44 uses, for example, the Bluetooth(registered trademark) technology to modulate the operation data onto acarrier wave of a predetermined frequency, and radiates the low powerradio wave signal from the antenna 45. That is, the operation data ismodulated onto the low power radio wave signal by the wireless module 44and transmitted from the controller 5. The wireless controller module 19of the game apparatus 3 receives the low power radio wave signal. Thegame apparatus 3 demodulates or decodes the received low power radiowave signal to obtain the operation data. Based on the obtainedoperation data and the information processing program, the CPU 10 of thegame apparatus 3 performs the game process. The wireless transmissionfrom the communication section 36 to the wireless controller module 19is sequentially performed at a predetermined time interval. Since thegame process is generally performed at a cycle of 1/60 sec.(corresponding to one frame time), data is preferably transmitted at acycle of a shorter time period. The communication section 36 of thecontroller 5 outputs, to the wireless controller module 19 of the gameapparatus 3, the respective operation data at intervals of 1/200seconds, for example.

As described above, the game apparatus 3 can obtain marker coordinatedata, acceleration data and angular velocity data as operation dataaccording to the tilt of the input device 8 controlled by the user. Notethat in other embodiments, the operation data obtained by the gameapparatus 3 may be any data such that the tilt of the input device andthe specified position can be calculated based on the operation data,and the game apparatus 3 may obtain at least one of the markercoordinate data, the acceleration data and the angular velocity data.When the input device 8 is used, the player can perform not only theconventional, typical game operation of pressing operation buttons, butalso an operation of tilting the input device 8 at an intended tiltangle. Moreover, with the input device 8, the player can also perform anoperation of specifying an intended position on the screen with theinput device 8, and an operation of moving around the input device 8itself.

[Outline of Process by Game Apparatus 3]

Next, referring to FIGS. 8 and 9, the outline of the process performedby the game apparatus 3 will be described. The game apparatus 3 performsa process in which the user uses the input device 8 to perform anoperation of selecting an item from among a plurality of selection itemsdisplayed on the screen. In the present embodiment, an example where theuser inputs a letter will be described. That is, the game apparatus 3displays a plurality of images representing letters on the screen andthe user selects an image from among the plurality of images, therebyaccepting the input of the letter represented by the selected image.

FIG. 8 is a diagram showing an example of images displayed on the screenof the television 2 by the process performed by the game apparatus 3. InFIG. 8, letter images representing “J” to “R” and a cursor 60 aredisplayed on the screen. The letter images displayed on the screen areselection items from which the user makes a selection. Note that whilean example where the selection items are letter images is describedherein, the selection items may be any items, i.e., icons or points on amap.

The cursor 60 is displayed at a position on the screen being pointed bythe input device 8 (hereinafter referred to as the “specifiedposition”), as shown in FIG. 8. The “position being pointed by the inputdevice 8 (the specified position)” is ideally the position of theintersection between the screen and a straight line obtained byextending the Z axis of the input device 8 (the controller 5) in thepositive direction. In practice, however, the game apparatus 3 does notneed to strictly calculate the position of the intersection as thespecified position, but may calculate a position in the vicinity of theposition of the intersection. The details of the method for calculatingthe specified position in the present embodiment will be describedlater. In other embodiments, the specified position does not have to bea position in the vicinity of the intersection, but may be what iscalculated so that it changes according to at least one of the positionand the tilt (orientation) of the input device 8. For example, in otherembodiments, the game apparatus 3 may detect the moving direction of theinput device 8 by means of an acceleration sensor so as to move thespecified position according to the moving direction. As describedabove, the game apparatus 3 calculates the specified position based onoperation data so that it changes according to at least one of theposition and the direction of the input device 8.

In the present embodiment, the user moves the cursor 60 by moving thespecified position by controlling the direction (and/or the position) ofthe input device 8. Then, the user presses a predetermined button (e.g.,the A button 32 d) of the controller 5 while the cursor 60 is pointingat a letter image representing a letter that the user intends to input,thereby inputting the letter. In response to the predetermined buttonbeing pressed, the game apparatus 3 accepts the input of the letterrepresented by the letter image being pointed by the cursor 60. Thus,the game apparatus 3 displays a plurality of letter images on thescreen, and the user selects an image from among the plurality of letterimages using the input device 8.

In the present embodiment, the game apparatus 3 calculates the tilt ofthe input device 8 based on the operation data. Then, the set ofselection items (letter images) displayed on the screen is switched toanother according to the amount of tilt of the input device 8. FIG. 9 isa table showing the relationship between the tilt of the input device 8and the corresponding set of selection items displayed. As shown in FIG.9, the input device 8 switches between sets of selection items accordingto the amount of tilt about the Z axis with reference to the referenceorientation, which is the orientation in which the button surface (theupper surface of the housing 31 where the buttons 32 a to 32 h areprovided) faces vertically upward. Specifically, when the input device 8is in the reference orientation, a set of letter images 62 representing“J” to “R” are displayed as selection items (the center column in FIG.9). When the input device 8 is tilted to the left from the referenceorientation, a set of letter images 61 representing “A” to “I” aredisplayed as selection items (the left column in FIG. 9). When the inputdevice 8 is tilted to the right from the reference orientation, a set ofletter images 63 representing “S” to “Z” are displayed as selectionitems (the right column in FIG. 9). Note that “to the right” or “to theleft” refers to a rotation direction as viewed in the Z-axisnegative-to-positive direction.

As described above, in the present embodiment, the user can select andinput a letter from among “A” to “Z” by combining together the operationof pointing at a position on the screen with the Z axis of the inputdevice 8 and the operation of tilting the input device 8 about the Zaxis. In the present embodiment, a selection can be made from among 26different letter images, but the number of letter images displayedsimultaneously on the screen is nine or eight. Therefore, as comparedwith a conventional method of displaying all the 26 letter images atonce, it is possible to reduce the number of letter images to bedisplayed simultaneously on the screen. When too many letter images aredisplayed at once, it is difficult to perform the letter image selectionoperation. The present embodiment reduces the number of letter imagesdisplayed at once on the screen so that the user can easily perform theselection operation. In the present embodiment, the user can performboth the operation of selecting a letter image (the operation of movingthe specified position) and the operation of switching between sets ofletter images (the operation of changing the tilt of the input device8), using the input device 8. Therefore, the two different operationscan be performed simultaneously, and it is possible to easily perform aninput operation involving two different operations. It is possible toperform an input operation involving two different operations with onehand.

[Details of Process by Game Apparatus 3]

Next, the details of the process performed by the game apparatus 3 willbe described. First, important data used in the process performed by thegame apparatus 3 will be described with reference to FIG. 10. FIG. 10shows important data stored in the main memory of the game apparatus 3(the external main memory 12 or the internal main memory 11 e). As shownin FIG. 10, the main memory of the game apparatus 3 stores aninformation processing program 70, operation data 71, and process data76. Note that in addition to those shown in FIG. 10, the main memoryalso stores other data necessary for the process, such as image data ofvarious objects displayed on the screen, and data representing variousparameters of the objects.

At an appropriate point in time after the power of the game apparatus 3is turned ON, part or whole of the information processing program 70 isloaded from the optical disc 4 and stored in the main memory. Theinformation processing program 70 includes a program for displayingselection items (specifically, letter images) and performing a processaccording to the item selected by the user from among the displayedselection items (specifically, a process of outputting a letterrepresented by the letter image).

The operation data 71 is operation data transmitted from the controller5 to the game apparatus 3. As described above, since the operation datais transmitted at a rate of once per 1/200 sec from the controller 5 tothe game apparatus 3, the operation data 71 stored in the main memory isupdated at this rate. In the present embodiment, the main memory needsto store only the newest (last obtained) operation data. As shown inFIG. 10, the operation data 71 includes acceleration data 72, markercoordinate data 73, operation button data 74, and angular velocity data75.

The acceleration data 72 is data representing the acceleration(acceleration vector) detected by the acceleration sensor 37. Herein,the acceleration data 72 represents a three-dimensional accelerationvector, each component of which is the acceleration in the direction ofone of the three, X, Y and Z axes, shown in FIG. 3. In the presentembodiment, the magnitude of the acceleration vector detected by theacceleration sensor 37 while the controller 5 is being stationary is“1”. That is, the magnitude of the gravitational acceleration detectedby the acceleration sensor 37 is “1”.

The marker coordinate data 73 is data representing the coordinatescalculated by the image processing circuit 41 of the imagecapturing/processing section 35, i.e., the marker coordinates describedabove. The marker coordinates are expressed in a two-dimensionalcoordinate system (the x′y′ coordinate system shown in FIG. 17) forrepresenting positions on the plane corresponding to the captured image.Note that if the two markers 6R and 6L are captured by the imagecapturing element 40, two sets of marker coordinates are calculated. Ifone of the markers 6R and 6L is not located within the range that can becaptured by the image capturing element 40, only one marker is capturedby the image capturing element 40, and only one set of markercoordinates is calculated. If neither of the markers 6R and 6L islocated within the range that can be captured by the image capturingelement 40, no marker is captured by the image capturing element 40, andno marker coordinates are calculated. Thus, the marker coordinate data73 may represent two sets of marker coordinates, represent one set ofmarker coordinates, or indicate that there are no marker coordinates.

The operation button data 74 is data representing the input status ofeach of the operation buttons 32 a to 32 i. That is, the operationbutton data 74 represents whether or not each of the operation buttons32 a to 32 i is pressed.

The angular velocity data 75 is data representing the angular velocitiesdetected by the gyroscopes 55 and 56 of the gyroscope unit 7. Herein,the angular velocity data 75 represents the angular velocity about eachof the X, Y and Z three axes shown in FIG. 3.

The process data 76 is data used in a letter input process (FIG. 11) tobe described later. The process data 76 includes specified position data77, tilt data 78, page data 79, and threshold value data 80.

The specified position data 77 is data representing the specifiedposition on the screen. In the present embodiment, a specified positionis expressed in a two-dimensional coordinate system for representingpositions on the screen. In the present embodiment, the specifiedposition is calculated based on the tilt of the input device 8, which iscalculated from the operation data 71. More specifically, the specifiedposition is calculated based on the tilt about the X axis and the tiltabout the Y axis, among the tilts of the input device 8. The specifiedposition is used in the process of selecting an item from amongselection items (a plurality of letter images).

The tilt data 78 is data representing the tilt of the input device 8.The tilt represented by the tilt data 78 is used in the process ofswitching between sets of selection items. The tilt data 78 representsone of the tilts (orientations) of the input device 8 about the Z axis.That is, the tilt data 78 used in the process of switching between setsof selection items represents a tilt about an axis (the Z axis) that isnot used in the calculation of the specified position. In the presentembodiment, the tilt of the input device 8 is expressed as an angle θ(−180°<θ≦180°) of which a positive value represents a tilt to the rightas viewed in the Z-axis negative-to-positive direction, with 0° beingthe reference orientation (the orientation in which the button surfacefaces vertically upward).

The page data 79 represents a group of selection items actuallydisplayed, among all selection items that can be displayed on thescreen. In the present embodiment, one of the set of letter images 61representing “A” to “I”, the set of letter images 62 representing “J” to“R”, and the set of letter images 63 representing “S” to “Z” isdisplayed on the screen. Herein, the set of letter images 61 is referredto as the first page, the set of letter images 62 as the second page,and the set of letter images 63 as the third page. The page dataindicates one of the first to third pages. Note that while the number ofpages that can be switched from one to another is three in the presentembodiment, the number of pages is not limited to this. It should benoted however that with too many pages, it is difficult for the user toperform the operation so that an intended page is displayed.

The threshold value data 80 is data representing the threshold value(the upper limit value and/or the lower limit value) based on which theset of selection items displayed on the screen is switched to another.The set of selection items is switched to another when the tiltrepresented by the tilt data 78 goes above or below a threshold value.In the present embodiment, the threshold value is set for each page.Specifically, the threshold value data 80 represents the followingthreshold values.

First page: Upper limit value=θ1°

Second page: Lower limit value=θ2°, Upper limit value=θ3°

Third page: Lower limit value=θ4°

The threshold value θ1° of the first page means that where the firstpage is displayed, the page is switched to the second page when the tiltangle θ of the input device 8 goes above the upper limit value θ1°. Thethreshold values θ2° and θ3° of the second page mean that where thesecond page is displayed, the page is switched to the first page whenthe tilt angle θ of the input device 8 goes below the lower limit valueθ2° and to the third page when it goes above the upper limit value θ3°.The threshold value θ4° of the third page means that where the thirdpage is displayed, the page is switched to the second page when the tiltangle θ of the input device 8 goes above the lower limit value θ4°. Notethat the threshold values θ1 and θ2 are negative values, and thethreshold values θ3 and θ4 are positive values. The threshold values areset so that θ1≧θ2 and θ3≧θ4, the details of which will be describedlater.

Next, the detailed flow of the process performed by the game apparatus 3will be described with reference to FIGS. 11 and 12. FIG. 11 is a mainflow chart showing a flow of the letter input process performed by thegame apparatus 3. When the power of the game apparatus 3 is turned onthe CPU 10 of the game apparatus 3 executes a boot program stored in aboot ROM (not shown), so as to initialize each unit, including the mainmemory. The information processing program stored in the optical disc 4is loaded to the main memory, and the CPU 10 starts executing theinformation processing program. The flow chart of FIG. 11 illustrates aprocess performed when the processes described above are completed.

First, in step S1, the CPU 10 performs an initialization process. Inthis initialization process, values of various parameters used in theletter input process are initialized. For example, in the presentembodiment, data representing the second page is stored as the page data79 in the main memory. In the initialization process, a virtual space isconstructed in which the letter images, being selection items, arearranged. After step S1 described above, the process loop through stepsS2 to S7 is repeatedly performed while the game is performed. Note thatthe process loop is performed at a rate of once per one frame period(e.g., 1/60 sec).

In step S2, the CPU 10 acquires operation data. Specifically, operationdata transmitted from the controller 5 is received via the wirelesscontroller module 19. Then, acceleration data, marker coordinate data,operation button data, and angular velocity data included in thereceived operation data are stored to the main memory. Following stepS2, the process of step S3 is performed.

In step S3, the CPU 10 performs a display item determination process.The display item determination process is a process of determining a setof selection items (display items) to be displayed from among sets ofselection items that can be displayed on the screen. Referred to FIG.12, the details of the display item determination process will now bedescribed.

FIG. 12 is a flow chart showing a flow of the display item determinationprocess (step S3) shown in FIG. 11. First, in step S11 of the displayitem determination process, the CPU 10 calculates the tilt angle θ ofthe input device 8 about the Z axis. Specifically, the CPU 10 reads outthe operation data 71 from the main memory and calculates the tilt angleθ based on the operation data 71. Data representing the calculated tiltangle θ is stored in the main memory as the tilt data 78. The method forcalculating the tilt angle θ may be any method such that the calculationis done based on the operation data, and may be, for example, a firstcalculation method or a second calculation method to be described below.

The first calculation method is a method using marker coordinatesincluded in the operation data. FIG. 13 is a diagram showing an exampleof positions of marker coordinates in a captured image. As shown in FIG.13, a position on the captured image is expressed by the x′y′ coordinatesystem. In FIG. 13, it is assumed that two sets of marker coordinatesrepresenting the positions P1 and P2 are calculated by the imagecapturing/processing section 35. That is, it is assumed that the gameapparatus 3 obtains, as the operation data, data representing markercoordinates representing the positions P1 and P2 shown in FIG. 13 fromthe controller 5. At this point, the CPU 10 first calculates a vector v1that connects together the two sets of marker coordinates. Note that itis determined according to a predetermined rule which one of the twosets of marker coordinates is used as the start point of the vector andwhich one as the end point of the vector. For example, the start pointmay be one of two sets of marker coordinates of which the value of thex′ component is smaller, or a set of marker coordinates that is closerto the set of marker coordinates used as the start point in the previousiteration of step S11.

The angle between the vector v1 and the x′ axis changes according to therotation of the input device 8 about the Z axis, and it is 0° when inthe reference orientation (the orientation in which the button surfacefaces vertically upward). That is, the angle between the vector v1 andthe x′ axis corresponds to the tilt angle θ of the input device 8.Therefore, the CPU 10 calculates the angle between the vector v1 and thex′ axis as the tilt angle θ of the input device. According to the firstcalculation method described above, it is possible to accuratelycalculate the tilt angle θ of the input device 8 since an image capturedby an image capturing element is used.

The second calculation method is a method using angular velocitiesincluded in the operation data. If the tilt of the input device at theinitial point is obtained in advance, the CPU 10 can calculate the tiltangle θ of the input device 8 by cumulatively addingsuccessively-detected angular velocities to the tilt at the initialpoint. Specifically, the tilt angle θ of the input device 8 iscalculated as a tilt angle that is obtained by changing the previoustilt (the tilt calculated in the previous process loop) by a unit timeworth of the present angular velocity (the angular velocity obtained inthe present process loop).

For example, the tilt at the initial point may be obtained as the userperforms a predetermined operation (e.g., an operation of pressing the Abutton 32 d) in a state where the input device 8 is at a predeterminedtilt. Then, the CPU 10 may use, as the predetermined tilt, the tilt at apoint in time when the predetermined operation is performed (the initialpoint). For example, the tilt at the initial point may be calculated bythe first calculation method described above.

In order to obtain the tilt angle θ about the Z axis, the CPU 10 maycalculate the tilts about three axes or may calculate only the tiltabout the Z axis. That is, the CPU 10 may obtain the tilt angle θ bycalculating tilts of the input device 8 about three axes based on(three-dimensional) angular velocities about three axes and thenextracting the tilt about the Z axis from the tilts about three axes.The CPU 10 may calculate the tilt angle θ about the Z axis simply basedon the angular velocity about the Z axis.

With the first method, it is necessary that the input device 8 is usedin a state where the image capturing element 40 can capture an image ofthe marker section 6 (i.e., in a state where the Z-axis positivedirection of the input device 8 faces the marker section 6), therebyrestricting the manner in which the input device 8 can be used. Incontrast, with the second method, since the tilt angle θ can becalculated without using marker coordinates, the usability of the inputdevice 8 is not restricted, and the user can therefore use the inputdevice 8 while pointing it in any direction.

Note that the method for calculating the tilt angle θ of the inputdevice 8 is not limited to the method above, but may be any othersuitable method. For example, in other embodiments, the CPU 10 maycalculate the tilt angle θ by using the acceleration included in theoperation data. Note that since the acceleration sensor 37 can detect,as an acceleration, the gravitational acceleration acting upon the inputdevice 8, it is possible by using the acceleration to calculate the tiltangle θ of the input device 8 with respect to the direction of gravity.In other embodiments, the first method and the second method may becombined together. Specifically, the tilt angle of the input device 8calculated by the second method may be corrected by using the tilt anglecalculated by the first method (e.g., by bringing the tilt anglecalculated by the second method closer to the tilt angle calculated bythe first method at a predetermined rate). Moreover, in otherembodiments, the CPU 10 may calculate the tilt angle θ by using all ofthe acceleration, the angular velocity and the marker coordinates.

As described above, the operation data used for calculating the tiltangle of the input device 8 may be marker coordinate data, angularvelocity data, acceleration data, or a combination of these data. Theoperation data may be any data with which the tilt angle of the inputdevice 8 can be calculated. That is, the operation data may be datawhose value changes according to the tilt of the input device 8, such asthe marker coordinate data and the acceleration data, or data whosevalue changes according to the change of the tilt of the input device 8,such as the angular velocity data.

Referring back to FIG. 12, following step S11, the process of step S12is performed. In step S12, the CPU 10 determines whether the tilt angleθ of the input device 8 is larger than the current upper limit value.The “current upper limit value” refers to the upper limit valuecorresponding to the currently displayed page (the page represented bythe page data 79). Specifically, first, the CPU 10 reads out the pagedata 79 and the threshold value data 80 from the main memory, andidentifies the current upper limit value. For example, the current upperlimit value is identified to be “θ1°” when the page data 79 representsthe first page, and the current upper limit value is identified to be“θ3°” when the page data 79 represents the second page. Note that whenthe page data 79 represents the third page, no upper limit value is set,and therefore the determination result of step S12 is negative. Then,the CPU 10 reads out the tilt data 78 from the main memory, anddetermines whether the tilt angle θ represented by the tilt data 78 islarger than the identified current upper limit value. If thedetermination result of step S12 is affirmative, the process of step S13is performed. On the other hand, if the determination result of step S12is negative, the process of step S15 to be described later is performed.

In step S13, the CPU 10 determines whether there exists a next pagefollowing the currently displayed page. If the determination result ofstep S13 is affirmative, the process of step S14 is performed. On theother hand, if the determination result of step S13 is negative, theprocess of step S15 to be described later is performed. Thedetermination process of step S13 is a process of preventing the pageswitching process (step S14) from being performed when there is no nextpage. Note that in the present embodiment, the process of step S13 maybe omitted because the upper limit value is not set for the third pagefor which there is no next page. Note however that it is preferred thatthe process of step S13 is performed where an upper limit value is setfor a page for which there is no next page.

In step S14, the CPU 10 switches the selection items to the next page.Specifically, the CPU 10 reads out the page data 79 from the mainmemory, and stores data representing a page number obtained by addingone to the page number represented by the page data 79, as new page data79, in the main memory. Performing step S14 determines the set ofdisplay items. After the completion of step S14, the CPU 10 ends thedisplay item determination process.

In step S15, the CPU 10 determines whether the tilt angle θ of the inputdevice 8 is smaller than the current lower limit value. The “currentlower limit value” refers to the lower limit value corresponding to thecurrently displayed page (the page represented by the page data 79).Specifically, first, the CPU 10 reads out the page data 79 and thethreshold value data 80 from the main memory, and identifies the currentlower limit value. For example, the current lower limit value isidentified to be “θ2°” when the page data 79 represents the second page,and the current lower limit value is identified to be “θ4°” when thepage data 79 represents the third page. Note that when the page data 79represents the first page, no lower limit value is set, and thereforethe determination result of step S15 is negative. Then, the CPU 10 readsout the tilt data 78 from the main memory, and determines whether thetilt angle θ represented by the tilt data 78 is smaller than theidentified current lower limit value. If the determination result ofstep S15 is affirmative, the process of step S16 is performed. On theother hand, if the determination result of step S15 is negative, the CPU10 ends the display item determination process.

In step S16, the CPU 10 determines whether there exists a previous pagepreceding the currently displayed page. If the determination result ofstep S16 is affirmative, the process of step S17 is performed. On theother hand, if the determination result of step S16 is negative, the CPU10 ends the display item determination process. The determinationprocess of step S16 is a process of preventing the page switchingprocess (step S17) from being performed when there is no previous page.Note that in the present embodiment, the process of step S16 may beomitted, as is step S13, because the lower limit value is not set forthe first page for which there is no previous page. Note however that itis preferred that the process of step S16 is performed where a lowerlimit value is set for a page for which there is no previous page.

In step S17, the CPU 10 switches the selection items to the previouspage. Specifically, the CPU 10 reads out the page data 79 from the mainmemory, and stores data representing a page number obtained bysubtracting 1 from the page number represented by the page data 79, asnew page data 79, in the main memory. Performing step S17 determines thedisplay items. After the completion of step S17, the CPU 10 ends thedisplay item determination process.

With the display item determination process described above, the sets ofselection items are switched from one to another according to the amountof tilt. That is, the currently displayed page is switched to the nextpage (step S14) when the tilt angle θ goes above the upper limit value(Yes in step S12) by tilting the input device 8. On the other hand, thecurrently displayed page is switched to the previous page (step S17)when the tilt angle θ goes below the lower limit value (Yes in step S15)by tilting the input device 8. The currently displayed page remainsunchanged if the tilt angle θ of the input device 8 is greater than orequal to the lower limit value and less than or equal to the upper limitvalue (No in step S12 and No in step S15).

Note that in the above embodiment, upper limit value θ1 of the firstpage is set to be larger than the lower limit value θ2 of the secondpage, and the upper limit value θ3 of the second page is set to belarger than the lower limit value θ4 of the third page. Therefore, it ispossible to prevent pages from being switched back and forth quickly,thus improving the controllability of the switching operation. Thedetails will now be described with reference to FIGS. 14 and 15.

FIG. 14 is a diagram showing the tilt angle θ of the input device 8 andthreshold values thereof in a case where the second page is displayed.As shown in FIG. 14, where the second page is displayed, the lower limitvalue is set to θ2° and the upper limit value to θ3°. Therefore, thepage is switched to another when the tilt angle θ goes out of the rangeθ2≦θ≦θ3 (the hatched area shown in FIG. 14). On the other hand, FIG. 15is a diagram showing the tilt angle θ of the input device 8 andthreshold values thereof in a case where the third page is displayed. Asshown in FIG. 15, where the third page is displayed, the lower limitvalue is set to θ4°. Therefore, the page is switched to another when thetilt angle θ goes out of the range θ4≦θ (the hatched area shown in FIG.15).

Herein, lower limit value θ4 is set to be smaller than the upper limitvalue θ3 (e.g., θ4=10°, θ3=30°) as described above. Therefore, where thesecond page is displayed on the screen, the CPU 10 switches the set ofselection items displayed on the screen from the second page to thethird page on the condition that the tilt angle θ goes above the upperlimit value θ3. Where the third page is displayed on the screen, the CPU10 switches the set of selection items displayed on the screen from thethird page to the second page on the condition that the tilt angle θgoes below the lower limit value θ4, which is smaller than the upperlimit value θ3. Thus, once the second page is switched to the third pageas the value of the tilt angle θ goes above the upper limit value θ3,the page does not return from the third page to the second page even ifthe tilt angle θ slightly decreases back below θ3 (as long as it doesnot go below the lower limit value θ4). That is, even if the tilt angleθ of the input device 8 changes back and forth around the upper limitvalue θ3, it is possible to prevent pages from being switched back andforth quickly between the second page and the third page, thus improvingthe controllability of the switching operation.

Note that while the switching between the second page and the third pageis described as an example in FIGS. 14 and 15, similar advantages can beobtained also for the switching between the first page and the secondpage by setting the upper limit value θ1 of the first page to be largerthan the lower limit value θ2 of the second page.

Referring back to FIG. 11, in step S4 following step S3, the CPU 10calculates the specified position based on the operation data.Specifically, the CPU 10 reads out the operation data 71 from the mainmemory, and calculates the specified position based on the operationdata 71. Data representing the calculated specified position is storedas the specified position data 77 in the main memory. While the methodfor calculating the specified position may be any method in which thespecified position is calculated based on the operation data, the methodmay be, for example, a method for calculating the specified positionusing marker coordinates, or a method for calculating the specifiedposition based on the tilt of the input device 8. Hereinafter, anexample of a method for calculating the specified position will bedescribed.

First, referring to FIG. 13, a method for calculating the specifiedposition using marker coordinates will be described. First, the CPU 10calculates the middle point (the point P3 shown in FIG. 13) between thetwo marker coordinates from the marker coordinate data 73 included inthe operation data 71. Then, the CPU 10 performs a correction ofrotating the middle point between the marker coordinates about thecenter of the captured image so that the vector v1 between the twomarker coordinates becomes parallel to the x′ axis. With thiscorrection, it is possible to accurately calculate the specifiedposition even if the input device 8 is tilted from the referenceorientation about the Z axis of the input device 8. Then, the CPU 10converts the coordinates representing the position of the correctedmiddle point to coordinates representing the position on the screen ofthe television 2. Note that since the specified position of the inputdevice 8 and the position of the middle point in the captured image movein opposite directions, the conversion is performed with up-downinversion and left-right inversion. The position on the screen obtainedby this conversion is used as the specified position.

As described above, with the method for calculating the specifiedposition using marker coordinates, it is possible to accuratelycalculate the specified position, as with the first calculation methodfor calculating the tilt angle θ of the input device 8.

Next, referring to FIGS. 16 and 17, a method for calculating thespecified position based on the tilt of the input device 8 will bedescribed. FIG. 16 is a diagram where the input device 8 and apredetermined plane are virtually placed in a predetermined virtualspace. In the present embodiment, the CPU 10 calculates the specifiedposition while defining a three-dimensional virtual space and assumingthat the input device 8 and a predetermined plane Q are virtually placedtherein, as shown in FIG. 16. The plane Q corresponds to the screen ofthe television 2. The CPU 10 calculates, as the specified position, theposition on the plane Q being pointed by the direction of the Z axis ofthe input device 8 (the Z-axis vector VZ shown in FIG. 16) in thevirtual space. That is, the position of the intersection R between aline segment that is obtained by extending the Z-axis vector VZrepresenting the tilt of the input device 8 in the virtual space and thepredetermined plane Q in the virtual space is calculated as thespecified position. Note that the “line segment that is obtained byextending the Z-axis vector VZ” means a line segment that is parallel tothe Z-axis vector VZ and passes along the Z axis.

Note that in the present embodiment, a position in the virtual space isexpressed by the X′Y′Z′ coordinate system as shown in FIG. 16. Aposition on the plane Q is expressed by the x″y″ coordinate system. Theplane Q is set so as to be parallel to the X′ Y′ plane of the spacecoordinate system, and the x″y″ coordinate system is set so that the X′axis of the space coordinate system and the x″ axis of the plane Q areparallel to each other, and the Y′ axis of the space coordinate systemand the y″ axis of the plane Q are parallel to each other (see FIG. 16).

In the present embodiment, it is assumed that the player uses the inputdevice 8 at a position generally in front of the screen of thetelevision 2 and that the position of the input device 8 does not changein the virtual space. That is, the CPU 10 performs a process by onlychanging the orientation (tilt) of the input device 8 in the virtualspace while not changing the position of the input device 8. Thus, theposition on the plane Q (the position of the intersection R) can beuniquely determined from the tilt of the input device 8.

The method for calculating the position on the plane Q (the position ofthe intersection R) will now be described in detail. FIG. 17 is adiagram showing the virtual space shown in FIG. 16 as viewed from theY′-axis positive direction side to the negative direction side. In FIG.17, the length from the point S representing the position of the inputdevice 8 to a point (projected point) T that is obtained by projectingthe point S onto the plane Q is denoted as “L”. The length, for the x″component, from the projected point T to the intersection R is denotedas “Wx”. In the present embodiment, the value of the length L is set bythe player at a predetermined point in time (e.g., a point in time whenthe game process is started).

First, the CPU 10 calculates the Z-axis vector VZ from the tilt of theinput device 8. Note that the tilt of the input device 8 can becalculated by a method similar to the second calculation method forcalculating the tilt angle θ. Therefore, where the second calculationmethod is employed for calculating the tilt angle θ of the input device8, the CPU 10 may store, in advance, the three-dimensional tilt of theinput device 8 calculated in step S11 in the main memory, and maycalculate the Z-axis vector VZ using the tilt.

As is clear from FIG. 17, there is such a relationship that the ratiobetween the length Wx and the length L is equal to the ratio between theX′ component (Zx) of the Z-axis vector VZ and the Z′ component (Zz) ofthe Z-axis vector VZ. Therefore, based on this relationship, the lengthWx can be calculated from the known X′ component Zx and the known Z′component Zz of the vector VZ and the known length L. That is, the CPU10 calculates the length Wx by Expression (1) below using the Z-axisvector VZ.Wx=L×Zx/Zz  (1)

As is the length Wx of the x″ component, the length Wy of the y″component from the projected point T to the intersection R can becalculated by Expression (2) below.Wy=L×Zy/Zz  (2)

Once the lengths Wx and Wy are obtained, it is possible to calculate theposition of the intersection R on the plane Q. In the presentembodiment, the position of the projected point T is used as the originof the x″y″ coordinate system. Then, the coordinates of the intersectionR are (Wx,Wy).

After calculating the position of the intersection R, the CPU 10calculates, as the specified position, the position on the screencorresponding to the position of the intersection R. That is, coordinatevalues of the x″y″ coordinate system are converted to coordinate valuesof another coordinate system representing the position on the screen. Inthis conversion, it is preferred that the specified position iscalculated so that the specified position is at the center of the screenwhen the input device 8 is tilted so as to point at the center of thescreen. For example, the CPU 10 may perform the conversion so that theposition of the projected point T corresponds to the position at thecenter of the screen. For example, the CPU 10 may determine whether theinput device 8 is tilted so as to point at the center of the screen byusing marker coordinates, and may perform a conversion so that thecalculated position of the intersection R on the plane Q when the inputdevice 8 is so tilted corresponds to the position of the center of thescreen.

As described above, it is possible to obtain the specified position fromthe tilt of the input device 8 by setting a virtual space in which theinput device 8 and the predetermined plane Q are placed, and bycalculating the position on the plane Q being pointed by the directionof the predetermined axis (the Z axis) of the input device 8 in thevirtual space. With the method for calculating the specified positionusing the tilt of the input device 8, the user can use the input device8 while pointing it in any direction, as with the second method forcalculating the tilt angle θ of the input device 8.

Note that the player is allowed to set the length L in the aboveembodiment. As is clear from Expressions (1) and (2) above, it ispossible to change the value of the two-dimensional coordinates (Wx,Wy)calculated by adjusting the magnitude of the length L. That is, byadjusting the magnitude of the length L, it is possible to adjust theamount of change in the two-dimensional coordinates (Wx,Wy) with respectto the change in the direction of the Z-axis vector VZ (i.e., the changeof the tilt of the input device 8). Specifically, the amount of changeincreases as the value of the length L increases. As a result, thecursor moves by a great distance by only slightly changing the tilt ofthe input device 8. On the other hand, the amount of change decreases asthe value of the length L decreases. As a result, the cursor moves onlyby a small distance even by significantly changing the tilt of the inputdevice 8. As described above, in the embodiment above, by allowing theplayer to set the length L, the player can, by themselves, adjust thecontrollability of the input device 8. For example, the player can setthe length L to be relatively small when it is necessary to finelycontrol the cursor, and the player can set the length L to be relativelylarge when it is necessary to move the cursor by large distances. Notethat in other embodiments, the length L may be a predetermined constant.

In other embodiments, the game apparatus 3 may calculate the length L bya predetermined method. For example, the CPU 10 may calculate the actualdistance from the input device 8 to the screen of the television 2 toset the calculated distance as the length L. The actual distance may becalculated by, for example, using the length between, or the size of,the two markers 6R and 6L in the captured image captured by the imagecapturing element 40. Moreover, if the plane Q is set so that theposition and size of the plane Q in the virtual space correspond to theposition and size of the screen of the television 2 in the actual space(e.g., the player may be allowed to set the size of the screen of thetelevision), the cursor will be displaced at the position on the screenof the television 2 corresponding to two-dimensional coordinates(Wx,Wy). Then, the cursor can be displayed at the accurate position (onthe screen) being pointed by the input device 8.

Referring back to FIG. 11, in step S5 following step S4, the CPU 10displays selection items, etc., on the screen of the television 2.Selection items (letter images) included in the page which is thecurrent display item are displayed on the screen of the television 2,and the cursor is displaced at the specified position calculated in stepS4. Specifically, the CPU 10 reads out the specified position data 77and the page data 79 from the main memory, so as to display selectionitems of the page specified by the page data 79 on the screen anddisplay the cursor at the specified position specified by the specifiedposition data 77. Following step S5, the process of step S6 isperformed.

If the page specified by the page data 79 has been changed from that inthe previous process loop, the set of selection items (letter images)displayed is switched to another in step S5. Note that the specificdisplay process for switching between sets of selection items may be anyprocess. In the present embodiment, the display process is performed byusing a virtual camera. That is, the CPU 10 sets the position and thedirection of the virtual camera so that one of the pages placed in thevirtual space that is specified by the page data 79 corresponds to thedisplay range, and produces an image of each page as viewed from thevirtual camera to display the produced image on the screen. Note that inother embodiments, the CPU 10 may move the page, being the displayitems, instead of moving the virtual camera. In other embodiments, thedisplay process may be performed by a method in which the virtual camerais not used. For example, the CPU 10 may set the display range on thetwo-dimensional plane in which each page is placed, so that pages areswitched from one to another by switching the display range from one toanother.

The visual effect used when switching between sets of selection items(pages) may be any visual effect. For example, when a page is switchedto another, the CPU 10 may switch from the current page to the new pagewith a scrolling visual effect. FIG. 18 is a diagram showing an exampleof a method for switching between sets of selection items. In FIG. 18,the set of letter images 61 representing “A” to “I”, the set of letterimages 62 representing “J” to “R”, and the set of letter images 63representing “S” to “Z” are placed in the virtual space along an arc.When switching pages from one to another, the CPU 10 rotates and movesthe virtual camera so that the display range gradually changes from theposition of the current page to the position of the new page (see arrowsshown in FIG. 18). Note that the CPU 10 may rotate the letter images 61to 63 instead of rotating the virtual camera. As described above, in thepresent embodiment, sets of selection items are switched from one toanother with such a visual effect in which selection items are scrolledwith rotation, as shown in FIG. 18. Note that in other embodiments, theCPU 10 may scroll the image so that the display area is simply movedstraight in the vertical or horizontal direction. While the image scrolldirection may be any direction, it is preferred that the image is movedin the horizontal direction (including the case where it is movedstraight in the horizontal direction, and the case where it is moved inthe horizontal direction with rotation as shown in FIG. 18). This isbecause the user is then given a natural controlling feel, with thedirection in which the input device 8 is tilted being coincident withthe direction in which the image moves.

Note that in example embodiments of the present invention, since the CPU10 “switches” between sets of selection items according to the amount oftilt of the input device 8, the scrolling of the image will not stop onthe way during the switching. In the embodiment above, the CPU 10 uses atransitional visual effect, when switching between pages, in which theimage transitions (scrolls) gradually. In other embodiments, the CPU 10may transition the image discontinuously (i.e., simply switch the imageto another) without such a transitional visual effect.

In step S6, the CPU 10 performs a predetermined process using thespecified position. In the present embodiment, the predetermined processis a process of outputting (displaying) a letter represented by theletter image being pointed by the cursor. That is, when a predeterminedoperation (e.g., an operation of pressing the A button 32 d of the inputdevice 8) is performed with a letter image being pointed by the cursor,the CPU 10 outputs a letter represented by the letter image. Note thatthe predetermined process may be any process as long as it is aninformation process in accordance with an item selected while beingdisplayed at the specified position. For example, where an iconrepresenting an item in a game is displayed as a selection item, the CPU10 may perform, as the predetermined process, a process of using theitem represented by the icon displayed at the specified position in thegame. Where an image representing a game character is displayed as aselection item, for example, the CPU 10 may perform, as thepredetermined process, a process of determining the game characterdisplayed at the specified position as an object to be controlled by theuser. Following step S6, the process of step S7 is performed.

In step S7, the CPU 10 determines whether the letter input processshould be ended. The determination of step S7 is made based on, forexample, whether the player has given an instruction to end the letterinput process. If the determination result of step S7 is negative, theprocess of step S2 is performed again. Thereafter, the process loopthrough steps S2 to S7 is performed repeatedly until it is determined instep S7 that the process should be ended. If the determination result ofstep S7 is affirmative, the CPU 10 ends the letter input process shownin FIG. 11. The letter input process is as described above.

As described above, in the embodiment above, the set of selection itemsdisplayed on the screen is switched to another according to the tiltangle θ of the input device 8, and one of the selection items isselected according to the specified position of the input device 8.Therefore, the user performs the operation of selecting a selection itemand the operation of switching between sets of selection items. Thus, itis possible to reduce the number of selection items displayed at once,and to perform two different operations using one input device 8.Therefore, according to example embodiments of the present invention,the user can easily perform the operation of selecting an item fromamong selection items.

In a conventional method where all the selection items are displayed atonce, each selection item is shown to be small, thereby requiring theuser to more accurately control the cursor (specified position).Therefore, it is practically impossible for the user to remember thedirection of the input device 8 (specified position) and the selectionitems, and to perform an input operation without visually checking theposition of the cursor. In contrast, according to the presentembodiment, each selection item displayed on the screen can be madelarger than that in the conventional method, thereby not requiring theuser to so accurately control the cursor. Therefore, if the user issomewhat used to the control, the user can perform an input operation,remembering the selection items for the combination of the specifiedposition and the tilt angle. Therefore, according to the presentembodiment, it is possible to perform an input operation more quicklythan that in the prior art.

In the embodiment above, the specified position used for selecting aselection item is calculated according to the tilt of the input device 8about the X axis and that about the Y axis (it can be said to be “themovement in the X-axis direction and the Y-axis direction” assuming thatthe input device 8 is used while the Z axis thereof is facing the markersection 6). On the other hand, the tilt angle θ used for switchingbetween sets of selection items is a tilt about the Z axis of the inputdevice 8. Thus, in the embodiment above, the specified position iscalculated according to the tilt or the position about an axisperpendicular to the Z axis used for the calculation of the tilt angleθ. In this way, the operation of selecting a selection item and theoperation of switching between selection items are independent of eachother and do not influence each other, thereby making it easy for theuser to perform the two different operations.

[Variation]

The embodiment above is merely an example, and the present invention mayalso be carried out with the following configurations in otherembodiments.

(Variation with Respect to Game System)

Referring to FIGS. 19 and 20, an example of a game system in anotherembodiment will now be described. FIG. 19 is a block diagram showing aconfiguration of a game system of a first variation. In FIG. 19, thegame system includes a camera 91, the game apparatus 3, and thetelevision 2. While the game apparatus 3 may employ a similarconfiguration to that of the embodiment above, the process ofcalculating the tilt angle, etc., are different from those of theembodiment above. The television 2 has a similar configuration to thatof the embodiment above. The game system shown in FIG. 19 will now bedescribed while focusing primarily on what is different from theembodiment above.

A marker 92 is an object of which the image is captured by the camera91. Where the game system includes a controller to be held by the user,the controller may be used as the marker 92. Alternatively, a part ofthe body of the user (e.g., a hand) may be used in place of the marker92. The camera 91 is placed at any position (e.g., a position around thetelevision 2) and captures the image of the marker 92. The operationdata based on the image-capturing result of the camera 91 is transmittedto the game apparatus 3 via a wired or wireless connection. The“operation data based on the image-capturing result” may be data of thecaptured image, or data representing information that can be obtainedfrom the image data (e.g., information of the position, the direction orthe shape of the marker 92 in the captured image).

The game apparatus 3 calculates the tilt angle of the marker 92 based onthe operation data. The tilt angle of the marker 92 can be obtained by,for example, identifying the shape of the marker 92 in the capturedimage and calculating the direction of the marker 92 from the shape. Thegame apparatus 3 calculates the specified position specified by themarker 92 based on the operation data. The specified position can becalculated from the position of the marker 92 in the captured image, forexample. Thus, it is possible to calculate the tilt angle and thespecified position of the marker 92 based on the image-capturing resultof the marker 92. Note that the process after the process of using thetilt angle and the specified position is similar to that of theembodiment above.

As shown in FIG. 19, in other embodiments, the object controlled by theuser is not limited to the input device 8, but may be a part of the bodyof the user, or a marker that can be moved by the user. Then, the gameapparatus 3 obtains, as the operation data, data based on theimage-capturing result from the image capturing means for capturing theimage of the object. Also in this way, as in the embodiment above, it ispossible to calculate the tilt angle and the specified position of theobject controlled by the user based on the operation data, and the usercan perform an operation of selecting a selection item using the tiltangle and the specified position as inputs.

FIG. 20 is a block diagram showing a configuration of a game system of asecond variation. In FIG. 20, the game system includes the camera 91, acontroller 95, the game apparatus 3, and the television 2. While thegame apparatus 3 may employ a similar configuration to that of theembodiment above, the process of calculating the tilt angle, etc., aredifferent from those of the embodiment above. The television 2 has asimilar configuration to that of the embodiment above. The game systemshown in FIG. 20 will now be described while focusing primarily on whatis different from the embodiment above.

The camera 91 is the same as that of the first variation. In the secondvariation, the operation data based on the image-capturing result of thecamera 91 is referred to as the “first operation data”. The controller95 includes detection means capable of detecting information regardingthe tilt of itself. In FIG. 20, the detection means is a gyroscope 96.The gyroscope 96 may detect only an angular velocity about one axis, ormay detect angular velocities about two axes or three axes. Thedetection means included in the controller 95 may be the accelerationsensor 37 of the embodiment above, or may be image capturing meanscapturing the image of a marker section (where the game system includesa marker section). The controller 95 transmits data based on thedetection result of the gyroscope 96 as second operation data to thegame apparatus 3 via a wired or wireless connection.

In the second variation, the game apparatus 3 calculates the tilt angleof the controller 95 based on the second operation data. The method forcalculating the tilt angle based on the second operation data, i.e., themethod for calculating the tilt angle based on the detection result ofthe gyroscope 96, is similar to that of the embodiment above. On theother hand, the game apparatus 3 calculates the specified positionspecified by the controller 95 based on the first operation data. Themethod for calculating the specified position is similar to that of thefirst variation. Note that the process after the process of using thetilt angle and the specified position is similar to that of theembodiment above.

As shown in FIG. 20, in other embodiments, the controller 95 includingthe gyroscope 96 may be used as the object controlled by the user. Inthis case, the game apparatus 3 may calculate the tilt angle of thecontroller 95 based on the second operation data from the controller 95,and calculate the specified position based on the first operation datafrom the camera 91 (being a separate unit from the controller 95). Alsoin this manner, as in the embodiment above and the first variation, itis possible to calculate the tilt angle and the specified position ofthe object controlled by the user based on the operation data, and theuser can perform an operation of selecting a selection item by using thetilt angle and the specified position as inputs.

In other embodiments, the game apparatus 3 may calculate the specifiedposition specified by the controller based on the operation data fromthe controller, and calculate the tilt angle of the controller based onthe operation data from a camera being a separate unit from thecontroller. As described above, example embodiments of the presentinvention are applicable to any information processing system that iscapable of calculating the tilt angle of the object controlled by theuser and the specified position specified by the object.

(Variation with Respect to Selection Items Displayed on Screen)

While images representing letters (alphabet letters) are displayed asselection items on the screen in the embodiment above, the selectionitems are not limited thereto. For example, in other embodiments,selection items may be icons each associated with a particular process.That is, example embodiments of the present invention are applicable toa technique in which a plurality of icons is displayed, and when an iconis selected, a process associated with the icon is performed. Exampleembodiments of the present invention are also applicable to a gameprocess. That is, the game apparatus 3 may display, as selection itemson the screen, images each representing a game item or a game character,or images each representing a game command. Then, the game apparatusperforms a game process corresponding to the item or the game characterrepresented by the selected image, and performs a game processcorresponding to the command represented by the selected image. Asdescribed above, the selection items may be images each associated witha particular process.

Example embodiments of the present invention are also applicable to aprocess of displaying a map (or a game map). Specifically, the gameapparatus 3 switches between maps to be displayed on the screenaccording to the tilt angle θ of the input device 8. Note that a partialarea (or a point) in the map area is associated with a particularprocess (e.g., a process of registering the partial area, a process ofdisplaying the vicinity of the partial area on an enlarged scale, etc.).When a partial area is selected, the game apparatus 3 performs a processthat is associated with the selected partial area (the partial areacorresponding to the specified position). In this way, exampleembodiments of the present invention can be applied to a case where amap is displayed on the screen, and a process is performed on a point onthe map.

While sets of letters are switched from one to another in response to aselection item switching operation in the embodiment above, types ofletters may be switched from one to another in response to a selectionitem switching operation. That is, in the embodiment above, 26 alphabetletters are divided into three groups, and the displayed group isswitched from one to another in response to a selection item switchingoperation. Alternatively, in other embodiments, switching betweencapital letters and small letters, switching between hiragana (Japanesecursive alphabet) and katakana (Japanese square alphabet), or switchingbetween fonts of letters may be actuated in response to a selection itemswitching operation.

As described above, example embodiments of the present invention areapplicable as an information processing program, or the like, forperforming a game process, a letter input process, or the like, forexample, aiming at, for example, providing an input interface thatallows for an easy operation of selecting an item from among selectionitems.

While example embodiments of the invention has been described in detail,the foregoing description is in all aspects illustrative and notrestrictive. It is understood that numerous other modifications andvariations can be devised without departing from the scope of theinvention.

What is claimed is:
 1. A non-transitory computer-readable storage medium having stored therein an information processing program to be executed by a computer in an information processing apparatus capable of obtaining operation data according to a tilt of a predetermined object that can be moved by a user, the information processing program causing the computer to provide functionality comprising: a tilt calculation for calculating, based on the operation data, tilt information corresponding to the tilt of the object about a predetermined axis of the object; a position calculation for calculating a specified position on a screen of a display device based on the operation data so that the specified position changes according to a direction of the predetermined axis of the object and calculating the specified position according to a tilt of the object about a first axis and a tilt thereof about a second axis perpendicular to the first axis, or according to a movement in a direction of the first axis and a movement in a direction of the second axis, the first and second axes being perpendicular to the predetermined axis of the object; a display control for displaying one of partial sub-groups of selection items on the screen of the display device; a switching for switching one of a plurality of partial sub-groups of selection items displayed on the screen to another according to an amount of tilt about the predetermined axis, the amount of tilt changing independently of a direction of the predetermined axis, which is used for calculating the specified position; and a selection for selecting one item displayed at the specified position, which changes according to the direction of the predetermined axis and which changes according to the tilt of the object about the first axis and the tilt thereof about the second axis or according to the movement in the direction of the first axis and the movement in the direction of the second axis, from among the partial sub-group of selection items, to which switching has been made according to the amount of tilt, which changes independently of the direction of the predetermined axis, to perform an information process according to the selected item; wherein where a first partial sub-group of selection items is displayed on the screen, the switching switches the selection items displayed on the screen from the first partial sub-group of selection items to a second partial sub-group of selection items on a condition that the amount of tilt about the predetermined axis goes above a first threshold value, and where the second partial sub-group of selection items is displayed on the screen, the switching switches the selection items displayed on the screen from the second partial sub-group of selection items to the first partial sub-group of selection items on a condition that the amount of tilt about the predetermined axis goes below a second threshold value being smaller than the first threshold value.
 2. The non-transitory storage medium according to claim 1, wherein: the object is an input device including a detector capable of detecting a tilt of itself or information according to a change of the tilt; the tilt calculation calculates the tilt information by using data based on a detection result of the detector as the operation data; and the position calculation calculates the specified position by using data based on a detection result of the detector as the operation data.
 3. The non-transitory storage medium according to claim 2, wherein the detector is a gyroscope for detecting an angular velocity of the object; the tilt calculation calculates the tilt information based on the angular velocity detected by the gyroscope; and the position calculation calculates a position of an intersection between a line segment extended from a predetermined position in a predetermined space in a direction of a vector corresponding to a tilt represented by the tilt information and a predetermined plane in the predetermined space, so as to calculate, as the specified position, a position on the screen corresponding to the position of the intersection.
 4. The non-transitory storage medium according to claim 2, wherein: the detector is an image capture device configured to capture an image of a predetermined subject; the tilt calculation calculates the tilt information based on a tilt of the subject in the captured image captured by the image capture device; and the position calculation calculates the specified position based on a position of the subject in the captured image captured by the image capture device.
 5. The non-transitory storage medium according to claim 1, wherein: the object is a part of a body of the user or a marker that can be used by the user; and the information processing apparatus obtains, as the operation data, data based on an image-capturing result from image capture device capturing an image of the object.
 6. The non-transitory storage medium according to claim 1, wherein: the object is an input device including a detector capable of detecting a tilt of itself or information according to a change of the tilt; the information processing apparatus obtains, as the operation data, data based on an image-capturing result from image capture device capturing an image of the object, and obtains, as the operation data, data based on a detection result of the detector from the input device; the tilt calculation calculates the tilt information based on the data based on the detection result; and the position calculation calculates the specified position based on the data based on the image-capturing result.
 7. The non-transitory storage medium according to claim 1, wherein: the display control displays, on the screen, a part of a predetermined plane on which sets of the selection items are placed along an arc; and the switching switches between sets of the selection items displayed on the screen by rotating the predetermined plane.
 8. The non-transitory storage medium according to claim 1, wherein: the selection items are images displayed on the screen, each image being associated with a process; and the selection includes performance of a process associated with the image displayed at the specified position.
 9. The non-transitory storage medium according to claim 8, wherein: the selection items are each an image representing a game item, a game character, or a game command; and the selection includes performance of a game process according to an item, a game character or a game command represented by the image displayed at the specified position.
 10. The non-transitory storage medium according to claim 8, wherein: the selection items are each an image representing a letter or a string of letters; and the selection includes performance of a process of outputting a letter represented by the image displayed at the specified position.
 11. The non-transitory storage medium according to claim 10, wherein the switching switches between letter types of the letter or the string of letters represented by the image displayed on the screen.
 12. The non-transitory storage medium according to claim 1, wherein: the selection items are each a partial area in an area displayed on the screen, each partial area being associated with a process; and the selection includes performance of a process associated with a partial area corresponding to the specified position.
 13. The storage medium according to claim 1, wherein: the position calculation calculates a position of an intersection between a line segment extended from a predetermined position in a predetermined space in a direction of a vector corresponding to a tilt represented by the tilt information and a predetermined plane in the predetermined space, so as to calculate, as the specified position, a position on the screen corresponding to the position of the intersection.
 14. The storage medium according to claim 1, wherein: the operation data used as a basis for calculating the specified position on the screen of the display device so that the specified position changes according to the direction of the predetermined axis is obtained simultaneously with the operation data used as a basis to calculate the tilt information of the amount of tilt about the predetermined axis for switching between the partial sub-groups of selection items displayed on the screen.
 15. The non-transitory storage medium according to claim 1, wherein the predetermined axis is the longitudinal axis of the predetermined object.
 16. An information processing apparatus capable of obtaining operation data according to a tilt of a predetermined object that can be moved by a user, comprising: a computer system, comprising a computer processor, the computer system being configured to at least perform: a tilt calculation for calculating, based on the operation data, tilt information corresponding to the tilt of the object about a predetermined axis of the object; a position calculation for calculating a specified position on a screen of a display device based on the operation data so that the specified position changes according to a direction of the predetermined axis of the object and calculating the specified position according to a tilt of the object about a first axis and a tilt thereof about a second axis perpendicular to the first axis, or according to a movement in a direction of the first axis and a movement in a direction of the second axis, the first and second axes being perpendicular to the predetermined axis of the object; a display control for displaying one of partial sub-groups of selection items on the screen of the display device; a switching for switching one of a plurality of partial sub-groups of selection items displayed on the screen to another according to an amount of tilt about the predetermined axis, the amount of tilt changing independently of a direction of the predetermined axis, which is used for calculating the specified position; and a selection for selecting one item displayed at the specified position, which changes according to the direction of the predetermined axis and which changes according to the tilt of the object about the first axis and the tilt thereof about the second axis or according to the movement in the direction of the first axis and the movement in the direction of the second axis, from among the partial sub-group of the selection items, to which switching has been made according to the amount of tilt, which changes independently of the direction of the predetermined axis, to perform an information process according to the selected item; wherein where a first partial sub-group of selection items is displayed on the screen, the switching switches the selection items displayed on the screen from the first partial sub-group of selection items to a second partial sub-group of selection items on a condition that the amount of tilt about the predetermined axis goes above a first threshold value, and where the second partial sub-group of selection items is displayed on the screen, the switching switches the selection items displayed on the screen from the second partial sub-group of selection items to the first partial sub-group of selection items on a condition that the amount of tilt about the predetermined axis goes below second threshold value being smaller than the first threshold value.
 17. The information processing apparatus according to claim 16, wherein: the position calculation calculates a position of an intersection between a line segment extended from a predetermined position in a predetermined space in a direction of a vector corresponding to a tilt represented by the tilt information and a predetermined plane in the predetermined space, so as to calculate, as the specified position, a position on the screen corresponding to the position of the intersection.
 18. The information processing apparatus according to claim 16, wherein: the operation data used as a basis for calculating the specified position on the screen of the display device so that the specified position changes according to the direction of the predetermined axis is obtained simultaneously with the operation data used as a basis to calculate the tilt information of the amount of tilt about the predetermined axis for switching between the partial sub-groups of selection items displayed on the screen.
 19. The information processing apparatus according to claim 16, wherein the predetermined axis is the longitudinal axis of the predetermined object.
 20. An information processing system capable of obtaining operation data according to a tilt of a predetermined object that can be moved by a user, comprising: a computer system, comprising a computer processor, the computer system being configured to at least: calculate, based on the operation data, tilt information corresponding to the tilt of the object about a predetermined axis of the object; calculate a specified position on a screen of a display device based on the operation data so that the specified position changes according to a direction of the predetermined axis of the object and calculate the specified position according to a tilt of the object about a first axis and a tilt thereof about a second axis perpendicular to the first axis, or according to a movement in a direction of the first axis and a movement in a direction of the second axis, the first and second axes being perpendicular to the predetermined axis of the object; control display of one of partial sub-groups of selection items on the screen of the display device; switch one of a plurality of partial sub-groups of selection items displayed on the screen to another according to an amount of tilt about the predetermined axis, the amount of tilt changing independently of a direction of the predetermined axis, which is used for calculating the specified position; and select one item displayed at the specified position, which changes according to the direction of the predetermined axis and which changes according to the tilt of the object about the first axis and the tilt thereof about the second axis or according to the movement in the direction of the first axis and the movement in the direction of the second axis, from among the partial sub-group of selection items, to which switching has been made according to the amount of tilt, which changes independently of the direction of the predetermined axis, to perform an information process according to the selected item; wherein where a first partial sub-group of selection items is displayed on the screen, the selection items displayed on the screen is switched from the first partial sub-group of selection items to a second partial sub-group of selection items on a condition that the amount of tilt about the predetermined axis goes above a first threshold value, and where the second partial sub-group of selection items is displayed on the screen, the selection items displayed on the screen is switched from the second partial sub-group of selection item to the first partial sub-group of selection items on a condition that the amount of tilt about the predetermined axis goes below a second threshold value being smaller than the first threshold value.
 21. The information processing system according to claim 20, wherein: the computer system is further configured to at least: calculate a position of an intersection between a line segment extended from a predetermined position in a predetermined space in a direction of a vector corresponding to a tilt represented by the tilt information and a predetermined plane in the predetermined space, so as to calculate, as the specified position, a position on the screen corresponding to the position of the intersection.
 22. The information processing system according to claim 20, wherein: the operation data used as a basis for calculating the specified position on the screen of the display device so that the specified position changes according to the direction of the predetermined axis is obtained simultaneously with the operation data used as a basis to calculate the tilt information of the amount of tilt about the predetermined axis for switching between the partial sub-groups of selection items displayed on the screen.
 23. The information processing system according to claim 20, wherein the predetermined axis is the longitudinal axis of the predetermined object.
 24. An information processing apparatus capable of obtaining operation data according to a tilt of a predetermined object that can be moved by a user, comprising: a tilt calculator configured to calculate, based on the operation data, tilt information corresponding to the tilt of the object about a predetermined axis of the object; a position calculator configured to calculate a specified position on a screen of a display device based on the operation data so that the specified position changes according to a direction of the predetermined axis of the object and calculate the specified position according to a tilt of the object about a first axis and a tilt thereof about a second axis perpendicular to the first axis, or according to a movement in a direction of the first axis and a movement in a direction of the second axis, the first and second axes being perpendicular to the predetermined axis of the object; a display controller configured to display one of partial sub-groups of selection items on the screen of the display device; a data table configured to at least assign a first partial sub-group of the selection items to a first tilt range of the object and assign a second partial sub-group of the selection items to a second tilt range of the object; a switching device configured to switch one of the partial sub-groups of the selection items displayed on the screen to another according to an amount of tilt about the predetermined axis, the amount of tilt changing independently of a direction of the predetermined axis, which is used for calculating the specified position, so that the first partial sub-group of the selection items is displayed upon the amount of tilt being within the first tilt range and the second partial sub-group of the selection items is displayed upon the amount of tilt being within the second tilt range; and a selector configured to select one item displayed at the specified position, which changes according to the direction of the predetermined axis and which changes according to the tilt of the object about the first axis and the tilt thereof about the second axis or according to the movement in the direction of the first axis and the movement in the direction of the second axis, from among the partial sub-group of selection items, to which switching has been made according to the amount of tilt, which changes independently of the direction of the predetermined axis, to perform an information process according to the selected item; wherein where the first partial sub-group of selection items is displayed on the screen, the switching device switches the selection items displayed on the screen from the first partial sub-group of selection items to the second partial sub-group of selection items on a condition that the amount of tilt passes a second threshold and goes above a first threshold value, and where the second partial sub-group of selection items is displayed on the screen, the switching device switches the selection items displayed on the screen from the second partial sub-group of selection items to the first partial sub-group of selection items on a condition that the amount of tilt goes below the second threshold value being smaller than the first threshold value.
 25. The information processing apparatus according to claim 24, wherein the predetermined axis is the longitudinal axis of the predetermined object.
 26. An information processing apparatus capable of obtaining operation data according to a tilt of a predetermined object that can be moved by a user, comprising: a tilt calculator configured to calculate, based on the operation data, tilt information corresponding to the tilt of the object about a predetermined axis of the object; a position calculator configured to calculate a specified position on a screen of a display device based on the operation data so that the specified position changes according to a direction of the predetermined axis of the object and calculate the specified position according to a tilt of the object about a first axis and a tilt thereof about a second axis perpendicular to the first axis, or according to a movement in a direction of the first axis and a movement in a direction of the second axis, the first and second axes being perpendicular to the predetermined axis of the object; a display controller configured to display one of partial sub-groups of selection items on the screen of the display device; a data table configured to at least assign a first partial sub-group of the selection items to a first tilt range of the object and assign a second partial sub-group of the selection items to a second tilt range of the object; a switching device configured to switch one of the partial sub-groups of the selection items displayed on the screen to another according to an amount of tilt about the predetermined axis, the amount of tilt changing independently of a direction of the predetermined axis, which is used for calculating the specified position, so that the first partial sub-group of the selection items is displayed upon the amount of tilt being within the first tilt range and the second partial sub-group of the selection items is displayed upon the amount of tilt being within the second tilt range; and a selector configured to select one item displayed at the specified position, which changes according to the direction of the predetermined axis and which changes according to the tilt of the object about the first axis and the tilt thereof about the second axis or according to the movement in the direction of the first axis and the movement in the direction of the second axis, from among the partial sub-group of selection items, to which switching has been made according to the amount of tilt, which changes independently of the direction of the predetermined axis, to perform an information process according to the selected item; wherein where the first partial sub-group of selection items is displayed on the screen, the switching device switches the selection items displayed on the screen from the first partial sub-group of selection items to the second partial sub-group of selection items on a condition that the amount of tilt goes above a first threshold value, and where the second partial sub-group of selection items is displayed on the screen, the switching device switches the selection items displayed on the screen form the second partial sub-group of selection items to the first partial sub-group of selection items on a condition that the amount of tilt goes below the second threshold value being smaller than the first threshold vale, and the first and second thresholds corresponding to tilts on the same side of a reference orientation corresponding to a zero amount of tilt. 